javascript - javascript 对象的性能相关问题
问题描述
我想知道以下两个编码范例中是否存在一些性能问题。哪一个是最好的,为什么?
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()并通过点符号更好地访问对象属性值:
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)
推荐阅读
- arrays - how to get all individual matches from a regex in perl?
- django - Django - 使用自定义用户模型进行身份验证返回无
- java - 画圈的动画
- mysql - MYSQL-how to insert geometry data
- c++ - c++ type alias not working when testing specialization
- php - 在php中将整个网站重定向到新网站的主页
- python - Merge different length dataframes, Join column in dataframe dont have unique values
- node.js - 进程崩溃:TypeError:回调不是函数
- django - 没有搜索结果 Django 2.1 Solr 6.5
- mysql - Laravel 的原始查询在哪里?