2 回答
TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
可以這樣做
clonedTotalBalls = totalBalls.filter((element)=>!selectedBalls.includes(element))
該filter函數(shù)采用一個(gè)謂詞,該謂詞在每個(gè)元素上運(yùn)行一次,并為每個(gè)元素返回一個(gè)布爾值。在這種情況下,謂詞是元素是否包含在selectedBalls數(shù)組中。因此,包含在selectedBalls數(shù)組中的所有元素都將返回 false,而所有其他元素都返回 true。filter也不會(huì)修改原始數(shù)組,而是創(chuàng)建一個(gè)新數(shù)組。
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
splice刪除特定索引處的元素,而不是特定值。為了達(dá)到您想要的結(jié)果,您應(yīng)該使用:
function generateNewBalls() {
let clonedTotalBalls = [...totalBalls];
selectedBalls.map((ball) => {
let indexToRemove = clonedTotalBalls.indexOf(ball)
clonedTotalBalls.splice(indexToRemove, 1);
})
}
(如果您不想返回值,或者考慮使用and ,我還建議您將最佳實(shí)踐更改map為最佳實(shí)踐。但這與您的問題并不真正相關(guān))forEachfilterindexOf
添加回答
舉報(bào)
