我想知道下面两个编码范例中是否存在一些性能问题。哪一个最好,为什么?

var data = [{
        "name": "ABC",
        "code": 1,
        "age": 97
    },{
        "name": "XYZ",
        "code": 12,
        "age": 12
    },{
        "name": "LMN",
        "code": 121,
        "age": 172
    }
];

var response = [];



  方法1


data.forEach(function(entry){
        var obj = {
            "NAME": entry["name"],
            "AGE": entry["age"]
        };
        response.push(obj);
});



  方法2


data.forEach(function(entry){
        var obj = {};
        obj["NAME"] = entry["name"];
        obj["AGE"] = entry["age"];
        response.push(obj);
});


对于输出对象,我想说一下,假设100个键中只有10个键
该对象中有许多键。示例中仅显示受限。选择哪种编码标准,为什么?请,有人可以解释吗?

最佳答案

无需创建对象,然后进行Array.prototype.push()即可进行每次循环迭代...

您可以直接使用Array.prototype.map()代替Array.prototype.forEach(),并通过dot notation更好地访问对象属性值:



const data = [{
    "name": "ABC",
    "code": 1,
    "age": 97
  },{
    "name": "XYZ",
    "code": 12,
    "age": 12
  },{
    "name": "LMN",
    "code": 121,
    "age": 172
  }
];

const response = data.map(obj => ({
  NAME: obj.name,
  AGE: obj.age
}));

console.log(response)

关于javascript - javascript对象的性能相关问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52220337/

10-12 12:21
查看更多