Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript对象的性能相关问题_Javascript_Json_Object - Fatal编程技术网

javascript对象的性能相关问题

javascript对象的性能相关问题,javascript,json,object,Javascript,Json,Object,我想知道在下面的两个编码范例中是否存在一些相关的性能问题。哪一个是最好的,为什么 var data = [{ "name": "ABC", "code": 1, "age": 97 },{ "name": "XYZ", "code": 12, "age": 12 },{ "name": "LMN", "code": 121, "age":

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

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

var response = [];
方法1

方法2

对于输出对象,我需要假设100个键中只有10个键
对象中有许多关键点。示例中仅显示了有限的。选择哪种编码标准?为什么?请,有人能解释一下吗?

不需要创建对象,然后进行for everly循环迭代

您可以直接使用而不是,并通过以下方式更好地访问对象特性值:

const数据=[{
“名称”:“ABC”,
"守则":一,,
“年龄”:97
},{
“名称”:“XYZ”,
“代码”:12,
“年龄”:12岁
},{
“名称”:“LMN”,
“代码”:121,
“年龄”:172
}
];
const response=data.map(obj=>({
名称:obj.NAME,
年龄:obj.AGE
}));

log(response)
无需创建对象,然后进行for everly循环迭代

您可以直接使用而不是,并通过以下方式更好地访问对象特性值:

const数据=[{
“名称”:“ABC”,
"守则":一,,
“年龄”:97
},{
“名称”:“XYZ”,
“代码”:12,
“年龄”:12岁
},{
“名称”:“LMN”,
“代码”:121,
“年龄”:172
}
];
const response=data.map(obj=>({
名称:obj.NAME,
年龄:obj.AGE
}));

log(response)
这两种方法都很好,一种不应该比另一种“快”,至少不足以证明使用另一种方法是正确的。用你喜欢的

但是,如果你仍然在寻找结束。第一个应该更快,因为它一次定义了整个对象。引擎不需要进行“查找”。一次就完成了

在单独的注释中,考虑使用点标记,它应该更快,因为引擎将不必创建字符串。所以,改变

entry["name"]

另外,如果这是您的实际代码,目的是修改结果,使其仅包含姓名和年龄,而不包含代码。你能行

data.forEach(user => delete user.code)

两种方法都很好,其中一种不应该比另一种“快”,至少不足以证明使用另一种方法是合理的。用你喜欢的

但是,如果你仍然在寻找结束。第一个应该更快,因为它一次定义了整个对象。引擎不需要进行“查找”。一次就完成了

在单独的注释中,考虑使用点标记,它应该更快,因为引擎将不必创建字符串。所以,改变

entry["name"]

另外,如果这是您的实际代码,目的是修改结果,使其仅包含姓名和年龄,而不包含代码。你能行

data.forEach(user => delete user.code)

所有主要的JS实现现在都进行实时编译。每个引擎的优化程度取决于该引擎。对我来说,在Chrome中,第一个是最快的。为什么呢?你可能需要看看Chrome的源代码才能找到答案:)所有主要的JS实现现在都进行实时编译。每个引擎的优化程度取决于该引擎。对我来说,在Chrome中,第一个是最快的。为什么呢?你可能需要看看Chrome的源代码才能找到答案:)你没有回答这个问题。我认为@FK82并没有否认它是一个更好的代码。原来的问题显示了做同一件事的两种方法,并询问哪一种更快,你没有对此发表评论。@Yosvellquintero@rmn说了什么。问题是关于两种对象创建之间的性能差异。如果您想证明您的代码在性能方面更好,您应该提供一些理由。否则,这不是问题的答案。@FK82是正确的,您没有真正回答问题,但
map
是更好的选择,而且在Chrome中至少也更快->您没有回答问题。我认为@FK82并不否认这是一个更好的代码。原来的问题显示了做同一件事的两种方法,并询问哪一种更快,你没有对此发表评论。@Yosvellquintero@rmn说了什么。问题是关于两种对象创建之间的性能差异。如果您想证明您的代码在性能方面更好,您应该提供一些理由。否则,这不是问题的答案。@FK82是正确的,您没有真正回答问题,但
map
是更好的选择,而且在Chrome中至少也更快->
data.forEach(user => delete user.code)