2016-10-30 29 views
0

我希望检查event中的所有值都包含在state中。是这样的函数应该返回true,否则为false。这样做的好方法是什么?确保阵列中的所有值都在另一个阵列中

const state = [1,2,4,5,6,7] 
const event = [1,2] 
if(state.contains(event))(} 
+0

重复http://stackoverflow.com/q/16312528/218196 –

回答

3

您可以使用every()includes()阵列方法:

const state = [1, 2, 4, 5, 6, 7]; 
 
const event = [1, 2]; 
 
console.log(event.every(x => state.includes(x)));

-2

确定是否一个事件包含的数据不存储在状态:

 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)));

+0

如果您有任何问题,最好将它留作评论,或手动测试代码,以便您知道它是正确的,不得不问。此代码不起作用,因为在这种情况下'find'不是正确的功能。 – loganfsmyth

+0

@loganfsmyth更新我的回答 – Baz

+0

将你的代码与@ Gothdo的答案进行比较,你会发现你仍然返回错误的值。如果包含所有内容,则您要求“true”,如果不包含某些内容,则此答案为“true”。 – loganfsmyth

相关问题