【问题标题】:push special elements of array of objects to another array of objects将对象数组的特殊元素推送到另一个对象数组
【发布时间】:2019-12-22 03:37:34
【问题描述】:

我有一大堆充满值的对象,我也有一个空的对象数组,我愿意从完整的对象数组中获取每个值(顺便说一句,完整的对象数组的键比空的键多)并像这样把它推到空:

/*empty one (array1):*/ [{foo: '', bar: '', thumbnail: ''}];

/*full one (array2):*/ [{foo_: 'blah', bar: 'blah',
                       thumbnail: '/photo', id: 'ad12dxa1', something: 'thing'},{foo_: 'blah1', bar: 'blah1',
                       thumbnail: '/photo1', id: 'ad12dxa12', something: 'thing1'}];

我只想从 array2 中获取 foo_barthumbnail 并将它们作为 foobarthumbnail 插入到 array1 中,例如:foo = foo_ @987654330 @=bar, thumbnail= thumbnail

如果答案将同时包含for 循环和array.every 方法说明,那就更好了。

谢谢!

【问题讨论】:

    标签: javascript arrays object mapping javascript-objects


    【解决方案1】:

    您可以简单地使用.map() 和一些Object Destructuring 创建一个新数组:

    const data = [
      {foo_: 'blah', bar: 'blah', thumbnail: '/photo', id: 'ad12dxa1', something: 'thing'},
      {foo_: 'blah1', bar: 'blah1', thumbnail: '/photo1', id: 'ad12dxa12', something: 'thing1'}
    ];
                                                
    const result = data.map(({foo_:foo, bar, thumbnail}) => ({foo, bar, thumbnail}));
    
    console.log(result);
    .as-console-wrapper { max-height: 100% !important; top: 0; }

    【讨论】:

    • 您的答案有一个“运行代码 sn-p”按钮,该按钮一直有效,直到您开始编辑它。我建议回到第一个版本。
    • 又来了。现在不要碰任何东西。
    • 这段代码有点晦涩,你能补充解释一下foo_:foo和=>是什么意思吗,因为你修改了我的代码,你的代码没有任何foo键,我也请用我的代码作为一个例子
    • @iLiA 我已将链接添加到包含必要信息和简单示例的文档。 => 代表Arrow Functions
    • 谢谢@MohammadUsman,能否提供.every 和for 循环答案?
    猜你喜欢
    • 1970-01-01
    • 2019-04-11
    • 2020-08-23
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 2022-01-23
    • 2019-04-08
    相关资源
    最近更新 更多