javascript - 如何在javascript中将值插入数组

标签 javascript arrays json

如果值匹配,我想将值从一个数组插入到另一个数组。

这些是我的数组。

var names = [{key: 'Apple'}, {key: 'Dell'}, {key: 'Xitrix'}];
var data = [
     {enum_name:'Apple', date:'2000-12-15', accomp: 12},
     {enum_name:'Dell', date:'2000-12-15', accomp: 8},
     {enum_name:'Apple', date:'2000-12-16', accomp: 12},
     {enum_name:'Xitrix', date:'2000-12-16', accomp: 12},
     {enum_name:'Dell', date:'2000-12-17', accomp: 8},
     {enum_name:'Xitrix', date:'2000-12-17', accomp: 12},
];

然后我想将 data.date 和 data.accomp 插入到具有特定键的数组 names 中(例如 attrib: [arrays];

我有这段代码,但它没有将所有匹配的数据插入到key attrib

    var counts = 0;
    _.each(names, function(v, k){
        _.each(data, function(val, key){
            if(v.key == val.enum_name){
                var date = val.date;
                var accomp= val.accomp;

                names[k].attrib= [[date, accomp]];
                console.log(counts);
                counts++;
            }
        });
        counts = 0;
        //names[k]['values'] = 'test';
    });

我想要这样的输出。

 names = [
    {key: 'Apple', attrib: [['2000-12-15', 12], ['2000-12-16', 12]]}, 
    {key: 'Dell', attrib: [['2000-12-15', 8], ['2000-12-17', 8]]},
    {key: 'Xitrix', attrib: [['2000-12-16', 12], ['2000-12-17', 12]]}
 ];

最佳答案

尝试将 reduce 用于一个由 enum_name 索引的对象,其中包含一个 dateaccomp 数组,然后获取该对象的值,不需要库,并且运行时复杂性较低:

var names = [{key: 'Apple'}, {key: 'Dell'}, {key: 'Xitrix'}];
var data = [
   {enum_name:'Apple', date:'2000-12-15', accomp: 12},
   {enum_name:'Dell', date:'2000-12-15', accomp: 8},
   {enum_name:'Apple', date:'2000-12-16', accomp: 12},
   {enum_name:'Xitrix', date:'2000-12-16', accomp: 12},
   {enum_name:'Dell', date:'2000-12-17', accomp: 8},
   {enum_name:'Xitrix', date:'2000-12-17', accomp: 12},
];
console.log(Object.values(
  data.reduce((a, { enum_name: key, date, accomp }) => {
    if (!a[key]) a[key] = { key, attrib: [] };
    a[key].attrib.push([date, accomp]);
    return a;
  }, {})
));

关于javascript - 如何在javascript中将值插入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51093134/

相关文章:

javascript - 预览 d3 条形图,使其按每个 x 值的值排序

javascript - 在无限循环风格的展示中预加载相邻条目

javascript - 如果数组存在,则继续

ios - 在 TableViewCell 中设置默认图像

javascript - 可以在类里面调用 fancybox 吗?

javascript - Node.JS:带有请求模块的简单 GET 抛出 "Possible EventEmitter memory leak detected"

ios - 按特定键对字典数组进行排序

javascript - 处理数组时使用扩展语法 (...) 和 push.apply 之间的区别

java - 如何在java中使用jackson将缺失的属性反序列化为默认值

ruby-on-rails - 当 JSON 对象嵌套时,使用 Ruby 通过 JSON 进行解析?