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

}

最佳答案

您可以使用Array.prototype.map根据ID创建新数组:

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


检查浏览器compatibility,并在需要时使用shim

演示:http://jsfiddle.net/x3UkJ/

10-06 05:21