我有一个类似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()
?哪一个更快,为什么?如果我想要反转数组怎么办?逆转费用是多少?
答案 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));
希望得到这个帮助。