2016-11-17 47 views
0

我有一個字符串「apple_mango_banana」和一個包含{apple,mango}的數組。如何檢查一個字符串是否包含Javascript中的數組的所有元素

我想檢查我的字符串是否包含數組中存在的所有元素,如果是這樣,我想顯示一個具有與我的字符串相同的ID的div。

+1

請添加您的嘗試,看看這裏:[MCVE]。 –

+1

發佈您迄今爲止所嘗試的代碼,發生了什麼問題以及需要幫助的部分,SO不是爲您生成代碼的代碼結構。 –

+0

使用split函數將字符串拆分爲「_」。這將創建一個新數組,然後檢查數組是否爲這個新數組的子集。 這是你如何檢查一個數組是否是另一個數組的子集: - http://stackoverflow.com/questions/14130104/how-do-i-test-if-one-array-is-a-subset-另一個 – Ezio

回答

2

使用every()上的STR的編曲和includes()功能; 如果所有項目的傳遞函數爲true,則每個都將返回true。

var str = 'apple_mango_banana'; 
 
var arr = ['apple','banana']; 
 

 
var isEvery = arr.every(item => str.includes(item)); 
 

 
console.log(isEvery);

+0

ie不會支持,支持從邊緣開始14 – brk

+0

'includes'和'every'都是'ES6'功能 –

1

對於這種情況,您應該使用Array.every

var s = "apple_mango_banana"; 
 
var s1 = "apple_mago_banana"; 
 
var fruits = ["apple","mango"]; 
 

 
var allAvailable = fruits.every(function(fruit){ 
 
    return s.indexOf(fruit)>-1 
 
}); 
 

 
var allAvailable1 = fruits.every(function(fruit){ 
 
    return s1.indexOf(fruit)>-1 
 
}); 
 

 
console.log(allAvailable) 
 
console.log(allAvailable1)

1
var string="ax_b_c_d"; 
var array=['b','c','ax','d']; 

var arr=string.split("_"); 

if(array.sort().join("")==arr.sort().join("") && arr.length==array.length) 
{ 
console.log("match"); 
} 
+0

如果訂單更改,這將不起作用。像'「banana_apple」' – Rajesh

相關問題