我想将一个大数组的键映射到另一个键,同时使用 Underscore.js 的 map() 函数删除原始键。
large_array = _.map(data, function(element) {
element.b = element.a;
delete element.a;
return element;
});
console.log(large_array) // Returns an array with length == 0
为什么 large_array 的长度为零?
我觉得我错误地使用了 delete 语句,但我不确定。
编辑:
我可能过多地抽象了这段代码,因为简单的运行似乎工作得很好。
原始数据数组是来自FB.api('/me/friends', function(response) {...}
更具体地说,它是一个对象数组,例如 {id: "12345", name: "Bubba Watson"}
由于这是来自 Facebook 的响应,因此每个对象都保证具有“id”属性
实际代码是将“id”属性更改为“facebook_id”属性。
FB.api('/me/friends', function(response) {
console.log(response.data); // Returns 600+ Array of Bubba Watson like objects, each with an id.
large_array = _.map(response.data, function(element) {
element.facebook_id = element.id;
delete element.id;
return element;
});
console.log(large_array); // Mysteriously Returns: {length: 0, __proto__: Array[0]}
}