我想使用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的长度为零?

我觉得我正在使用删除声明,但我不确定。

编辑:

我可能会过多地抽象这个代码,因为简单的运行似乎工作得很好。

原始数据数组是来自FB.api('/me/friends', function(response) {...}响应FB.api('/me/friends', function(response) {...}

更具体地说,它是一个对象数组,例如{id:“12345”,名称:“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]}
}

===============>>#1 票数:3

您正确使用delete ,但您可能需要确保:

  1. data确实是Array类型, data数组中有元素
  2. data数组中的每个元素都具有名为a属性

你的代码适合我: http//jsfiddle.net/EJTgx/

var data = [
    { a: 10 },
    { a: 20 },
    { a: 30 }
];

var large_array = _.map(data, function(element) {
   element.b = element.a;
   delete element.a;
   return element;
});

console.log(large_array.length);    // Returns 3

  ask by TimeEmit translate from so

未解决问题?本站智能推荐:

2回复

将对象下划线映射到ID为键的新对象的数组[重复]

这个问题已经在这里有了答案: 如何在JavaScript对象文字中使用变量作为键? 12个答案 如何将该对象数组映射到新的对象数组,其中对象的id是键,其值是对象? 我在尝试上述Uncaught SyntaxError: Unexpected token
1回复

用下划线省略键数组

使用下划线(技术上为Lodash)。 有一个类似于以下内容的对象。 我还想从每个对象中“清理”一个数组的哈希: 这个想法是将数组中的每个元素从具有匹配键的对象中删除。 这意味着我的数据将最终如下所示: 我本来是在尝试: 我当时想在最内层使用省略,但是一次只能删
1回复

下划线js将对象数组的多个属性映射到新数组

var items = [{ //other properties... above item_name: [ [1], [2, 3] ], item_description: [ [1], [3, 4] ], item_quantity: [ [1], [4, 5] ], item_
2回复

下划线以使用另一个数组过滤数组对象

如何从数组b获取特定属性。 这些要过滤的属性在数组a中。 有没有更简单的方法可以使用下划线。 现在,如果使用下划线,我如何得到以下结果
3回复

如何用下划线从另一个数组中过滤元素?

我有一个jsonarray A,但我想删除满足一定条件的元素。 此条件是具有特定id的元素,这些元素包含在另一个称为B的数组中。它们都包含相同的id属性。 假设数组如下所示: 因此,我尝试创建的函数将导致: 我尝试了这个,但是没有用:
3回复

下划线:如何使用键返回数组的所有值

我有一个带有很多key : value大对象key : value ,并且我有一些带有此对象的一些键的阵列。 如何通过下划线返回此keys(array)的值? 我尝试这样,但是很牛**
4回复

下划线将数组转换为对象键

我试图将此数组转换为对象。 使用下划线,我要转换此数组: 变成一个看起来像这样的对象: 我真的只是在寻找最干净/最简单的方法。
6回复

通过键合并带下划线的数组

我有2个数组: 仅当id相等时才应更新数组1:因此,数组1看起来像 它不应创建新的数组。 仅基于阵列2更新阵列1 我设法通过在array2上的for循环和for过滤器内执行以下操作: 我如何以他最好的方式做到这一点? 使用underscore.js
2回复

下划线根据对象键创建数组

假设我有一个像这样的js对象 我想用Underscore做的是生成一个类似于下面的数组; 我可以用以下代码实现我想要的 http://jsfiddle.net/VCFZx/但它似乎不是最干净的方式吗?
3回复

下划线/下划线_。每个不返回数组

我最初试图这样做: 得到这个: 但_.each似乎未返回函数。 我最终决定了: 但相比之下,它显得笨拙。 我是错误地使用_.each,还是应该使用另一个功能?