在Javascript中通过JSON对象的最快方法

时间:2015-06-30 03:18:14

标签: javascript arrays json

我有一个类似JSON的对象数组[Object,Object...](在我看到this之前我正在调用它的JSON对象数组)并且我想查看其中的每个项目。 JSON对象中有3个值{name:"name",date:"2015-01-01",c:3},我想将它们中的每一个放入一个新数组中。我应该使用for item in JSONArary{item = ...}for (i=0,i<len,i++){array[i] = ....}还是JSONArray.pop()?哪一个更快,为什么?如果我想要反转数组怎么办?逆转费用是多少?

2 个答案:

答案 0 :(得分:1)

for (i=0,i<len,i++){array[i] = ....}应该比for item in JSONArary{item = ...}更快,因为后者将遍历此对象上的所有可枚举属性,而其中一些属性是不必要的。

当你想迭代数组的索引属性时,保持语义一致性的唯一保证方法是使用整数索引。

供参考:Why is using "for...in" with array iteration a bad idea?

即使Google将JavaScript coding style guide设为:

  

for-in循环:仅用于迭代对象/ map / hash中的键

答案 1 :(得分:0)

我有更快的方法,使用$ .map:

var oldArray = [{
    name: "name1",
    date: "2015-01-01",
    c: 3
}, {
    name: "name2",
    date: "2015-01-01",
    c: 3
}, {
    name: "name3",
    date: "2015-01-01",
    c: 3
}];
var newArray = $.map(oldArray, function (item) {
    return {
        FullName: item.name,
        RegisterDate: item.date
    };
});
alert(JSON.stringify(newArray));

希望得到这个帮助。