鍍金池/ 問答/HTML/ js怎么將下面的函數(shù)簡化

js怎么將下面的函數(shù)簡化

function mergeJsonObject(jsonObj1, jsonObj2, jsonObj3, jsonObj4, jsonObj5) {
    let resultJsonObject = {};

        function jsonObj(jsonObj) {
              for (let attr in jsonObj) {
                   resultJsonObject[attr] = jsonObj[attr];
                   }
              }

        jsonObj(jsonObj1);
        jsonObj(jsonObj2);
        jsonObj(jsonObj3);
        jsonObj(jsonObj4);
        jsonObj(jsonObj5);
        return resultJsonObject;
  }
  

可以用arguments嗎,傳入?yún)?shù)個數(shù)不固定

回答
編輯回答
葬憶

var mergeJsonObject = (...args) => Object.assign({}, ...args)

2018年6月16日 10:49
編輯回答
淡墨

js怎么將下面的函數(shù)簡化

2018年7月3日 05:31
編輯回答
墨小羽

例子參考一下,看看是不是你想要的

var aa = function(){

for (var i=0; i<arguments.length; i++){
    if (typeof (arguments[i]) == "object"){
        console.log(arguments[i])
    }
}

}

2017年2月19日 10:09
編輯回答
離人歸

同屬性覆蓋與否的問題沒有解決

const mereJsons = () {
    const args = [...arguments];
    return args.reduce((prev, current) => {
      for(let key in current){
        prev[key] = current[key];
      }
      return prev;
    });
}
2017年2月18日 10:17
編輯回答
放開她

看以什么規(guī)范,如果 ES6 的話可以:

function merge(...jsons) {
  return jsons.reduce((memo, json) => {
    return Object.assign(memo, json);
  }, {});
}
2017年12月9日 20:11
編輯回答
還吻
function merge() {
    var args = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        args[_i] = arguments[_i];
    }
    var merged = {};
    function generateObject(target, object) {
        if (target === void 0) { target = {}; }
        for (var key in object) {
            if (object.hasOwnProperty(key)) {
                target[key] = object[key];
            }
        }
        return target;
    }
    for (var i = 0; i < args.length; i++) {
        var arg = args[i];
        if (arg) {
            if (isArray(arg)) {
                for (var i_1 = 0; i_1 < arg.length; i_1++) {
                    var argItem = arg[i_1];
                    if (isPlainObject(argItem)) {
                        merged = generateObject(merged, argItem);
                    }
                    else if (!isDate(argItem)) {
                        merged[argItem] = argItem;
                    }
                }
            }
            else if (isPlainObject(arg)) {
                merged = generateObject(merged, arg);
            }
            else if (isString(arg) || isNumber(arg)) {
                merged[arg] = arg;
            }
        }
    }
    return merged;
}
2018年3月17日 21:58
編輯回答
呆萌傻
function mergeJsonObject(...args) {
    let resultJsonObject = {}
    args.map(function(val){
        Object.assign(resultJsonObject, val)        
    })
    return resultJsonObject
}
2017年8月31日 20:16
編輯回答
敢試
function mergeJsonObject(...args) {
    let resultJsonObject = {};

        function jsonObj(jsonObj) {
              for (let attr in jsonObj) {
                   resultJsonObject[attr] = jsonObj[attr];
                   }
              }
        args.forEach(jsonObj)
        return resultJsonObject;
  }
2018年9月9日 15:37
編輯回答
墨沫
function mergeJsonObject(...jsonObjs) {
    let resultJsonObject = {};
        
        jsonObjs.forEach(function(jsonObj) {
              for (let attr in jsonObj) {
                   resultJsonObject[attr] = jsonObj[attr];
              }
        })
        return resultJsonObject;
  }

更簡化一點的,直接

Object.assign({}, jsonObj1, jsonObj2)
2018年5月25日 18:58
編輯回答
礙你眼
function mergeJsonObject(jsonObj1, jsonObj2, jsonObj3, jsonObj4, jsonObj5) {
  let resultJsonObject = {}; 
  let allJson=arguments;
    for(let index in allJson){
      for(let attr in allJson[index]){
        resultJsonObject[attr] = allJson[index][attr];
        }
    }
    return resultJsonObject;
  }
2017年1月21日 13:15