根据已有属性值往对象数组中添加相应的新属性

问题: 随机生成颜色数组arr4,根据arr5的value值,依次添加相应的color属性值。(实际需处理的数组中的value值类型较多)


const arr1 = ["red","blue","yellow","green","pink"]

const arr2 = [
  {name: "tom", value: 1},
  {name: "tom", value: 1},
  {name: "tom", value: 2},
  {name: "tom", value: 5},
  {name: "tom", value: 2},
  {name: "tom", value: 1},
  {name: "tom", value: 3},
  {name: "tom", value: 3},
  {name: "tom", value: 1},
  {name: "tom", value: 4},
  {name: "tom", value: 3},
  {name: "tom", value: 4},
  {name: "tom", value: 5},
  {name: "tom", value: 4},
]

const arr3 = [
  {name: "tom", value: 1,color: "red"},
  {name: "tom", value: 1,color: "red"},
  {name: "tom", value: 2,color: "blue"},
  {name: "tom", value: 5,color: "pink"},
  {name: "tom", value: 2,color: "blue"},
  {name: "tom", value: 1,color: "red"},
  {name: "tom", value: 3,color: "yellow"},
  {name: "tom", value: 3,color: "yellow"},
  {name: "tom", value: 1,color: "red"},
  {name: "tom", value: 4,color: "green"},
  {name: "tom", value: 3,color: "yellow"},
  {name: "tom", value: 4,color: "green"},
  {name: "tom", value: 5,color: "pink"},
  {name: "tom", value: 4,color: "green"},
]

谢谢!


const arr1 = ["red", "blue", "yellow", "green", "pink"]

const arr2 = [
    { name: "tom", value: 1 },
    { name: "tom", value: 1 },
    { name: "tom", value: 2 },
    { name: "tom", value: 5 },
    { name: "tom", value: 2 },
    { name: "tom", value: 1 },
    { name: "tom", value: 3 },
    { name: "tom", value: 3 },
    { name: "tom", value: 1 },
    { name: "tom", value: 4 },
    { name: "tom", value: 3 },
    { name: "tom", value: 4 },
    { name: "tom", value: 5 },
    { name: "tom", value: 4 },
]

const arr3 = arr2.map((i, index) => ({ ...i, color: arr1[i.value - 1] }))
console.log('arr3', arr3)

你写的这歌arr1 arr2 arr3和你的问题有啥关系么

      arr2.forEach((item) => {
        let obj = {
          color: arr1[item.value - 1],
        };
        Object.assign(item, obj);
      });
      console.log(arr2);

img

使用random随机选择数组中一个值即可。

var items = ['1','2','3','4'];
var vaule = items[Math.floor(Math.random()*items.length)];
console.log(vaule,'随机从数组中取到的某一个值');