如何操作数组对象并创建新数组

玛南·卡普尔(Manan Kapoor)

我有js数组,如下所示:

var names = [{name:"high",id:1},{name:"high",id:2}, 
{name:"low",id:1},  {name:"low",id:2},{name:"medium",id:1},{name:"medium",id:2}];

我需要像这样创建另一个数组。

var newArr=[{name:high,items:[1,2]},{name:low,items:[1,2]},{name:medium,items:[1,2]}];

请建议我该怎么做。

马蒂亚斯

基于Underscorejs的解决方案

var obj = {};

_.each(names, function (e) {
    var o = obj[e.name];
    if (o) {
        o.items.push(e.id);
    } else {
        o = {name: e.name, items: [e.id]};
    }
    obj[e.name] = o;
});

var result = _.map(obj, function (e) {return e;});

纯js

var obj = {};
for (var i = 0; i < names.length; i++) {
    var e = names[i];
    var o = obj[e.name];
    if (o) {
        o.items.push(e.id);
    } else {
        o = {name: e.name, items: [e.id]};
    }
    obj[e.name] = o;
}
var result = [];
for (var k in obj) {
    if (obj.hasOwnProperty(k)) {
        result.push(obj[k]);
    }
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

操作数组中的对象

来自分类Dev

如何在数组中操作数组

来自分类Dev

尝试使用ArrayList操作数组中的对象

来自分类Dev

在以下情况下如何操作数组?

来自分类Dev

如何按类别列出评论?(操作数组)

来自分类Dev

如何使用 redux 操作数组的精确元素

来自分类Dev

如何操作数组来计算总分

来自分类Dev

在NumPy中操作数组元素

来自分类Dev

尝试使用PHP操作数组

来自分类Dev

在NumPy中操作数组元素

来自分类Dev

尝试使用PHP操作数组

来自分类Dev

PHP-操作数组

来自分类Dev

使用 Javascript 操作数组

来自分类Dev

在 numpy ndarrays 中操作数组

来自分类Dev

如何在不更改原始数组的情况下操作数组的副本?

来自分类Dev

Vue.js:操作数组并使用新数据发布表单

来自分类Dev

翻转操作数时,使用空对象添加空数组会产生不同的结果

来自分类Dev

翻转操作数时,使用空对象添加空数组会产生不同的结果

来自分类Dev

用操作数创建数组将导致nil个成员

来自分类Dev

创建类数组时,->的基本操作数具有非指针类型错误

来自分类Dev

通过不同的因子来操作数组的元素,而无需为每个元素创建变量

来自分类Dev

操作数组副本(通过传播运算符创建)会更改内存中的原始数组

来自分类Dev

操作数堆栈上数组类型的错误类型

来自分类Dev

在C ++中使用指针访问和操作数组

来自分类Dev

元素明智的操作数组朱莉娅

来自分类Dev

具有减少和操作数组的并行循环

来自分类Dev

排序数组所需的最少操作数

来自分类Dev

使用 v-for 和操作数组的 V 模型

来自分类Dev

如何从主对象创建新的对象数组