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

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

比較兩個數組中的值并生成一個新數組

比較兩個數組中的值并生成一個新數組

aluckdog 2023-08-18 16:52:49
我有兩個數組,它們可能有也可能沒有相似的值const arrayOne = [orange, red, black, blue, yellow]const arrayTwo = [blue, purple, white, red]我正在使用react,useEffect我希望在通過它進行某些更改時onClick返回不相同的值例子:-const = [orange, purple, black, white, yellow]我已經嘗試過以下...const [newArray, setNewArray] = useState([])const [reload, setReload] = useState(false)  useEffect(() => {    const results = arrayOne.filter((i) => {      return (        i.id != arrayTwo.id      )      setNewArray(results)    })  }, [reload])  return (    <button onClick={() => setReload(!reload) }>      Trigger useEffect    </button>  )
查看完整描述

4 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

找到相似的項目,然后進行相應的過濾:


const arrayOne = ['orange', 'red', 'black', 'blue', 'yellow']

const arrayTwo = ['blue', 'purple', 'white', 'red']


// [red,blue]

const dupItems = arrayOne.filter(item => arrayTwo.includes(item));


const output = [...arrayOne.filter(item => !dupItems.includes(item)), ...arrayTwo.filter(item => !dupItems.includes(item))];

console.log(output);


查看完整回答
反對 回復 2023-08-18
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

也許這樣的事情可以工作


const diffArray = arrayOne.reduce((acc, value) => {

  if ((arrayTwo.inclues(value) { return acc; }

  return acc.concat([value]);

}, []);

注意:請檢查我的代碼中是否有拼寫錯誤,我是通過手機接聽的


查看完整回答
反對 回復 2023-08-18
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

嘗試這個


function diff (a1, a2) {


    var a = [], diff = [];


    for (var i = 0; i < a1.length; i++) {

        a[a1[i]] = true;

    }


    for (var i = 0; i < a2.length; i++) {

        if (a[a2[i]]) {

            delete a[a2[i]];

        } else {

            a[a2[i]] = true;

        }

    }


    for (var k in a) {

        diff.push(k);

    }


    return diff;

}


// call here 

diff( ['a', 'b'], ['a', 'b', 'c', 'd'] );


查看完整回答
反對 回復 2023-08-18
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

一種解決方案是這樣做:


let arrayOne=['orange', 'red', 'black', 'blue', 'yellow'];


let arrayTwo=['blue', 'purple', 'white', 'red'];


let common=arrayOne.filter(value => arrayTwo.includes(value))


let result=[...new Set([...arrayOne,...arrayTwo])].filter(value=>common.indexOf(value)==-1)


console.log(result)


查看完整回答
反對 回復 2023-08-18
  • 4 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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