第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

用不同的值替換數(shù)組中的重復(fù)項

用不同的值替換數(shù)組中的重復(fù)項

偶然的你 2022-11-27 16:10:53
我想用不同的值替換重復(fù)項。例如arr = [1,1,1,1,2,2,2,3],我想用R所以結(jié)果看起來像這樣 arr = [1,R,R,R,2,R,R,3]現(xiàn)在我正在使用這種方法:    arr = [1,1,1,1,2,2,2,3]    let previous = 0;    let current = 1;    while (current < arr.length) {        if (arr[previous] === arr[current]) {            arr[current] = 'R';            current += 1;        } else if (arr[previous] !== arr[current]) {            previous = current;            current += 1;        }    }我想知道是否有不同的方法來實現(xiàn)這一目標(biāo)。例如使用 Lodash (uniqwith, uniq)。謝謝
查看完整描述

3 回答

?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗 獲得超10個贊

這是我會怎么做它看看當(dāng)前元素是否是具有當(dāng)前值的數(shù)組的第一個元素,如果不是則替換它


在非常大的陣列上可能需要一些時間


const input = [1,1,1,1,2,2,2,3]

let output = input.map(

  (el, i) => input.indexOf(el) === i ? el : 'R'

)

console.log(output)


查看完整回答
反對 回復(fù) 2022-11-27
?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗 獲得超5個贊

您可以關(guān)閉 aSet并檢查是否已經(jīng)看到該值。


let array = [1, 1, 1, 1, 2, 2, 2, 3],

    result = array.map((seen => v => seen.has(v) ? 'R' : (seen.add(v), v))(new Set));


console.log(...result);


檢查先前值的方法


let array = [1, 1, 1, 1, 2, 2, 2, 3],

    result = array.map((v, i, { [i - 1]: l }) => l === v ? 'R' : v);


console.log(...result);


查看完整回答
反對 回復(fù) 2022-11-27
?
蕭十郎

TA貢獻(xiàn)1815條經(jīng)驗 獲得超13個贊

這實際上通過使用集合 ( Set ) 非常簡單。


const initialArray = [1,1,1,1,2,2,2,3];

const valuesSet = new Set();


const newArray = initialArray.map((value) => {

    if (valuesSet.has(value)) {

        return 'R';

    } else {

        valuesSet.add(value);

        return value;

    }

});


查看完整回答
反對 回復(fù) 2022-11-27
  • 3 回答
  • 0 關(guān)注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號