Javascript 2对象数组,从一个对象数组中获取一个值并将其分配给另一个对象数组

Posted

技术标签:

【中文标题】Javascript 2对象数组,从一个对象数组中获取一个值并将其分配给另一个对象数组【英文标题】:Javascript 2 arrays of objects , get a value from one array of objects and assign it to the other array of objects 【发布时间】:2019-07-04 05:02:04 【问题描述】:

所以我有 2 个对象数组,我想从一个对象中获取名称值并将其分配给标签和值。这就是我正在做的事情。

let newAreas = [ label: '', value: '' ];
let areas = [name: 'Haram', condition: true, counter: 5, name: 'Nasr City', condition: false, counter: 3, name: 'Faisl', condition: true, counter: 7];  

我想获取每个名称并将它们分配给标签和值,所以现在我循环

areas.map(area => 
      newAreas.map(val => 
        val.label = area.name;
        val.value = area.name;
  );
);

    console.log(newAreas);

但这只会让我得到最后一个值我在这里做错了什么?

【问题讨论】:

map 不会更改现有数组,而是返回一个新数组。 您想从区域数组中的每个对象中获取标签等于名称且值等于名称的新对象? 你能写下你想要的输出吗? 这并不是newAreas 作为一个具有一个对象的数组所扮演的角色。那只是作为您想要的对象的模板吗?也不清楚你需要两个具有相同值的键。 试试这个 newAreas.push() 【参考方案1】:

您只想使用一次map,并检索返回值:

const areas = [
  name: 'Haram', condition: true, counter: 5, 
  name: 'Nasr City', condition: false, counter: 3, 
  name: 'Faisl', condition: true, counter: 7
];

const newAreas = areas.map((name) => (label: name, value: name));

console.log(newAreas);

这利用了object destructuring。

【讨论】:

谢谢!

以上是关于Javascript 2对象数组,从一个对象数组中获取一个值并将其分配给另一个对象数组的主要内容,如果未能解决你的问题,请参考以下文章

jQuery / Javascript从对象数组中删除对象[重复]

通过属性值从对象数组中获取JavaScript对象[重复]

通过属性值从对象数组中获取JavaScript对象[重复]

使用JavaScript从数组中删除对象

将动态数据从数组对象插入到引导模式中 - vanilla javascript

根据JavaScript中的属性值从对象数组中选择[重复]