我希望檢查event
中的所有值都包含在state
中。是這樣的函數應該返回true,否則爲false。這樣做的好方法是什麼?確保陣列中的所有值都在另一個陣列中
const state = [1,2,4,5,6,7]
const event = [1,2]
if(state.contains(event))(}
我希望檢查event
中的所有值都包含在state
中。是這樣的函數應該返回true,否則爲false。這樣做的好方法是什麼?確保陣列中的所有值都在另一個陣列中
const state = [1,2,4,5,6,7]
const event = [1,2]
if(state.contains(event))(}
您可以使用every()
和includes()
陣列方法:
const state = [1, 2, 4, 5, 6, 7];
const event = [1, 2];
console.log(event.every(x => state.includes(x)));
確定是否一個事件包含的數據不存儲在狀態:
let state = [1,2,3,5,6,7,8,9];
let event = [1,2,3];
console.log(event.some(a=>!state.includes(a)));
event = []
console.log(event.some(a=>!state.includes(a)));
event = [4]
console.log(event.some(a=>!state.includes(a)));
event = [1,2,4]
console.log(event.some(a=>!state.includes(a)));
state = [];
event = [1,2,3];
console.log(event.some(a=>!state.includes(a)));
event = []
console.log(event.some(a=>!state.includes(a)));
event = [4]
console.log(event.some(a=>!state.includes(a)));
event = [1,2,4]
console.log(event.some(a=>!state.includes(a)));
如果您有任何問題,最好將它留作評論,或手動測試代碼,以便您知道它是正確的,不得不問。此代碼不起作用,因爲在這種情況下'find'不是正確的功能。 – loganfsmyth
@loganfsmyth更新我的回答 – Baz
將你的代碼與@ Gothdo的答案進行比較,你會發現你仍然返回錯誤的值。如果包含所有內容,則您要求「true」,如果不包含某些內容,則此答案爲「true」。 – loganfsmyth
重複http://stackoverflow.com/q/16312528/218196 –