用另一个js数组填充一个javascript数组

时间:2013-04-03 14:39:50

标签: javascript arrays

我有一个包含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

}

3 个答案:

答案 0 :(得分:4)

您可以使用Array.prototype.map从ID中创建新阵列:

var listOfFriendsUIDs = listOfFriends.map(function(obj) { return obj.uid; });

检查浏览器compatibility并根据需要使用shim

DEMO: http://jsfiddle.net/x3UkJ/

答案 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;