亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據特定值識別數組中的唯一對象

根據特定值識別數組中的唯一對象

墨色風雨 2022-05-14 14:44:37
我有以下對象數組,我需要根據 key 從這個數組中識別唯一對象img1。我能夠識別與 key 關聯的唯一值,img1但不能識別 key 的關聯值img2。我目前擁有的代碼,const imgs_arr = [    ...new Set(      input_arr.map(item => {img_1: item.img1[0]})    )  ];  return imgs_arr;輸入數組:[{img1: ['/path/to/img1'], img2: ['/path/to/img2']},{img1: ['/path/to/img1'], img2: ['/path/to/img3']},{img1: ['/path/to/img1'], img2: ['/path/to/img4']},{img1: ['/path/to/img12'], img2: ['/path/to/img5']},{img1: ['/path/to/img12'], img2: ['/path/to/img46']},{img1: ['/path/to/img12'], img2: ['/path/to/img45']},{img1: ['/path/to/img12'], img2: ['/path/to/img478']}]預期輸出數組:[{img1: '/path/to/img1', img2: '/path/to/img2'},{img1: '/path/to/img12', img2: '/path/to/img5'}]根據評論中的問題為問題添加更多顏色。 img1key 具有我需要從中找到唯一值的值,然后img2從第一個匹配項中找到 key 的相應值。非常感謝您的幫助!
查看完整描述

2 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

使用forEach循環并使用 unqiue 鍵構建任何對象。Object.values從構建的對象中獲取。


const data = [

  { img1: ["/path/to/img1"], img2: ["/path/to/img2"] },

  { img1: ["/path/to/img1"], img2: ["/path/to/img3"] },

  { img1: ["/path/to/img1"], img2: ["/path/to/img4"] },

  { img1: ["/path/to/img12"], img2: ["/path/to/img5"] },

  { img1: ["/path/to/img12"], img2: ["/path/to/img46"] },

  { img1: ["/path/to/img12"], img2: ["/path/to/img45"] },

  { img1: ["/path/to/img12"], img2: ["/path/to/img478"] }

];


const update = data => {

  const res = {};


  data.forEach(item => {

    const u_key = item.img1[0];

    if (!(u_key in res)) {

        res[u_key] = item;

    }

  });

  return Object.values(res);

};


console.log(update(data));


查看完整回答
反對 回復 2022-05-14
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

function filterArrayByImg1(arr) {


  let x = [];


  return arr.filter((e, a) => {


      if (!e.img1 || !e.img1[0] || x.includes(e.img1[0]))

        return false;

      else {

        x.push(e.img1[0]);

        return true;

      }

    })

    .map(e => ({

      img1: e.img1[0],

      img2: e.img2[0]

    }));

}



let inputArray = [{

    img1: ['/path/to/img1'],

    img2: ['/path/to/img2']

  },

  {

    img1: ['/path/to/img1'],

    img2: ['/path/to/img3']

  },

  {

    img1: ['/path/to/img1'],

    img2: ['/path/to/img4']

  },

  {

    img1: ['/path/to/img12'],

    img2: ['/path/to/img5']

  },

  {

    img1: ['/path/to/img12'],

    img2: ['/path/to/img46']

  },

  {

    img1: ['/path/to/img12'],

    img2: ['/path/to/img45']

  },

  {

    img1: ['/path/to/img12'],

    img2: ['/path/to/img478']

  }

];




//filter the array

let filteredArr = filterArrayByImg1(inputArray);


console.log(filteredArr);


查看完整回答
反對 回復 2022-05-14
  • 2 回答
  • 0 關注
  • 112 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號