JavaScript數(shù)組對(duì)象中重復(fù)ID如何處理并賦予不同值?

JavaScript數(shù)組對(duì)象中重復(fù)ID如何處理并賦予不同值?

巧妙解決JavaScript數(shù)組對(duì)象中重復(fù)id問(wèn)題

本文提供一種高效的JavaScript方法,用于處理數(shù)組對(duì)象中重復(fù)的ID,并為具有相同ID的對(duì)象賦予不同的值。

假設(shè)我們有一個(gè)包含重復(fù)ID的數(shù)組對(duì)象:

const list = [   { id: 1, name: '小明' },   { id: 1, name: '小紅' },   { id: 2, name: '小強(qiáng)' },   { id: 3, name: '小張' },   { id: 4, name: '小蘭' },   { id: 1, name: '小青' },   { id: 4, name: '小青' } ];

我們的目標(biāo)是為每個(gè)重復(fù)ID的對(duì)象添加一個(gè)value屬性,并賦予其不同的布爾值(true或false)。最終結(jié)果應(yīng)如下所示:

const list = [   { id: 1, name: '小明', value: true },   { id: 1, name: '小紅', value: false },   { id: 2, name: '小強(qiáng)' },   { id: 3, name: '小張' },   { id: 4, name: '小蘭', value: true },   { id: 1, name: '小青', value: true },   { id: 4, name: '小青', value: false } ];

為了實(shí)現(xiàn)這個(gè)目標(biāo),我們可以使用一個(gè)對(duì)象來(lái)跟蹤ID的出現(xiàn)次數(shù),并使用另一個(gè)對(duì)象記錄每個(gè)ID已經(jīng)賦予的值。

立即學(xué)習(xí)Java免費(fèi)學(xué)習(xí)筆記(深入)”;

以下是實(shí)現(xiàn)代碼:

const list = [   { id: 1, name: '小明' },   { id: 1, name: '小紅' },   { id: 2, name: '小強(qiáng)' },   { id: 3, name: '小張' },   { id: 4, name: '小蘭' },   { id: 1, name: '小青' },   { id: 4, name: '小青' } ];  const idCounts = {}; const idValues = {};  list.forEach(item => {   idCounts[item.id] = (idCounts[item.id] || 0) + 1; });  list.forEach(item => {   if (idCounts[item.id] > 1) {     if (!idValues[item.id]) {       idValues[item.id] = true;     }     item.value = idValues[item.id];     idValues[item.id] = !idValues[item.id];   } });  console.log(list);

這段代碼首先統(tǒng)計(jì)每個(gè)ID出現(xiàn)的次數(shù),然后遍歷數(shù)組,為重復(fù)ID的對(duì)象添加value屬性,并交替賦予true和false值。 idValues 對(duì)象保證了同一個(gè)ID的后續(xù)對(duì)象會(huì)得到不同的布爾值。 這種方法簡(jiǎn)潔高效,易于理解和維護(hù)。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊15 分享