map数组基于另一个数组数据

时间:2018-03-15 16:46:25

标签: javascript reactjs

我有两个数组数据我只是试图根据相同的ID获取数组2的数据 示例

===

如果数据的id为{{1}} id,那么我想得到同一项的颜色

2 个答案:

答案 0 :(得分:2)

您可以使用Array.prototype.find

{data.map((tweet)=> {
    const { color = "default-color" } = dataTwo.find(item => item.id === tweet.id) || {};
    return <ul key={tweet.id}>
            <li>{tweet.title} <b>Color:</b> { color }</li>
     </ul>
})}

或者您可以更改dataTwo以使其成为对象(地图):

const dataTwo = {
    1: "red"
    2: "blue"
  };

然后直接访问它:

{data.map((tweet)=>
     <ul key={tweet.id}>
            <li>{tweet.title} <b>Color:</b> { dataTwo[tweet.id] || 'default-color' }</li>
     </ul>
)}

答案 1 :(得分:1)

创建dataTwo对象,键为id,值为color。使用此对象在循环时获取颜色

var dataTwoObj = {};
dataTwo.reduce((data)=>{
    dataTwoObj[data.id] = data.color;
});
data.map((tweet)=> {
    const color = dataTwoObj[item.id];
    <ul key={tweet.id}>
            <li>{tweet.title} <b>Color:</b> { color }</li>
     </ul>
     )