我有一个包含listOfFriends
[{"name" : "fName lName", "uid" : "0102030405"}], ...
我想减少这个数组的大小,因为我只需要uids
,所以我想创建另一个只有uids
var listOfFriends, listOfFriendsUIDs;
//listOfFriends gets filled
for(var i = 0; i < listOfFriends.length; i++){
listOfFriendsUIDs[i].uid = listOfFriends[i].uid; // this line isn't working
//listOfFriendsUIDs is still undefined untill the start of this loop
}
答案 0 :(得分:4)
您可以使用Array.prototype.map
从ID中创建新阵列:
var listOfFriendsUIDs = listOfFriends.map(function(obj) { return obj.uid; });
检查浏览器compatibility并根据需要使用shim。
答案 1 :(得分:1)
尝试使用投影方法.map()
var listOfFriendsUIDs = listOfFriends.map(function(f){ return f.uid;});
答案 2 :(得分:0)
listOfFriendsUIDs[i]
未定义,因此您无法访问其uid
属性。你需要:
// creates an array of UID strings: ["0102030405", ""0102030405", ...]
listOfFriendsUIDs[i] = listOfFriends[i].uid;
或
// creates an array of objects with a uid property: [{uid:"0102030405"}, ...]
listOfFriendsUIDs[i] = {}
listOfFriendsUIDs[i].uid = listOfFriends[i].uid;