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号并在产生的错误中复制名称,但我没有成功。你能建议我怎么做吗?
谢谢
答案 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 );