映射两个数组并将结果复制到新数组中

时间:2019-03-07 02:29:05

标签: javascript arrays

 array1 = [{
        "id": 1,
        "name": "aaa",
      },
      {
        "id": 2,
        "name": "bbb"
      },
{
        "id": 5,
        "name": "ccc"
      },
      {
        "id": 6,
        "name": "ddd"
      },
{
        "id": 8,
        "name": "eee"
      },
      {
        "id": 12,
        "name": "fff"
      }]

array2 = [ 5, 6, 8 ,12]

结果数组= [ {name: "ccc"}, {name: "ddd"} , {name: "eee"}, {name: "fff"} ]

我希望映射两个数组以获取匹配的ID号并在产生的错误中复制名称,但我没有成功。你能建议我怎么做吗?

谢谢

3 个答案:

答案 0 :(得分:1)

首先将<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <div id="root"></div>变成一个对象,该对象将id映射到相应的对象:

const datacore = datasubject.map(value => {
  value.coreCompetencies = Object.values(value.coreCompetencies);
  return value;
})

然后您可以通过执行操作获得所需的结果

array1

答案 1 :(得分:1)

您可以尝试以下方法。基本上,您要根据第二个数组中是否存在ID来过滤第一个数组,然后仅通过选择所需的键将其映射回去。

const Conference = types
  .model('Conference', {
    id: types.identifyingNumber,
    date: types.Date,
    description: types.string,
  });

const conferenceStoreBase = types.model({ events: types.array(Event) });

答案 2 :(得分:1)

尝试一下:

array1 = [{"id": 1,"name": "aaa"},{"id": 2,"name": "bbb"},{"id": 5,"name": "ccc"},{"id": 6,"name": "ddd"},{"id": 8,"name": "eee"},{"id": 12,"name": "fff"}] ;

array2 = [ 5, 6, 8 ,12];

var result = array1.filter(item => array2.includes(item.id)).map(({id,name}) => ({name}));

console.log( result );