为了账号安全,请及时绑定邮箱和手机立即绑定

将对象中的静态元素附加到对象数组中的每个对象javascript

将对象中的静态元素附加到对象数组中的每个对象javascript

神不在的星期二 2021-06-22 15:08:03
我如何获取这个对象和数组。const data = {    type: "hello",    point: 1.8};const raw = [    {        x: [1, 2],        y: [-1.1, -1.2]    },    {        x: [14, 24],        y: [-1.14, 1.24]    }];然后将data对象中的项目“附加”到raw数组中的每个对象。想要的最终结果是;const result = [    {        x: [1, 2],        y: [-1.1, -1.2],        type: "hello",        point: 1.8    },    {        x: [14, 24],        y: [-1.14, 1.24],        type: "hello",        point: 1.8    }];我尝试使用map但此对象适用于数组,然后我查看了使用Object.keys但没有运气。
查看完整描述

3 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

map确实是您想要的工具。我可能会将它与回调参数列表中的解构map和结果值中的属性传播结合起来:


const result = raw.map(({x, y}) => ({x, y, ...data}));

实时复制:

const data = {

    type: "hello",

    point: 1.8

};

const raw = [

    {

        x: [1, 2],

        y: [-1.1, -1.2]

    },

    {

        x: [14, 24],

        y: [-1.14, 1.24]

    }

];

const result = raw.map(({x, y}) => ({x, y, ...data}));

console.log(result);

请注意,如果data有任何属性的值是对象(data在您的示例中不是),则使用 spread 将仅复制对对象的引用,而不会进行深度复制。所以你所有的result对象都应该共享它们。如果相关,您可以进行深度复制。


查看完整回答
反对 回复 2021-06-24
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

我找到了解决办法;


const data = {type:"hello",point:1.8};

const raw = [{x:[1,2],y:[-1.1,-1.2]},{x:[14,24],y:[-1.14,1.24]}];

const result = raw.map(r => Object.assign(r, data));

console.log(result);

对此方法的一些反馈将不胜感激。寻找现在提供的解决方案。谢谢你们。


查看完整回答
反对 回复 2021-06-24
  • 3 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信