我要开门见山了。我有两个数组:
fruits = ["Banana", "Apple"];
fruitsSpecified = ["Big Banana", "Banana Small", "Black Apple", "Big Orange"];
我正在寻找的结果:
newArray = ["Big Banana", "Banana Small", "Black Apple"];
所以我想检查 fruitsSpecified
字符串是否包含 fruits
的一部分,并将这些结果放入一个新数组中。我怎么做?我找到的所有答案都过于复杂,并且只查找完全匹配(例如数组#1 中的“Apple”和数组#2 中的“Apple”)。
到目前为止我有这个:
function testFunction() {
newArray = [];
for (i = 0; i < fruitsSpecified.length; i++) {
myResult = fruitsSpecified.indexOf(fruits[i]);
newArray.push(myResult);
}
console.log(newArray);
}
这显然不起作用,因为它只能找到完全匹配。
我已经检查了这些问题(但发现它们太复杂了,我相信/希望有一个更简单的解决方案):
Best way to find if an item is in a JavaScript array?
How do I check if an array includes an object in JavaScript?
谢谢!
最佳答案
您可以在第一个数组上循环并查看第二个数组的每个元素是否包含第一个数组的当前元素:
function testFunction() {
var newArray = [];
for (var i = 0; i < fruits.length; i++) {
for(var j = 0; j < fruitsSpecified.length; j++)
{
if(fruitsSpecified[j].indexOf(fruits[i]) != -1)
{
newArray.push(fruitsSpecified[j]);
}
}
}
console.log(newArray);
}
控制台输出:
["Big Banana", "Banana Small", "Black Apple"]
如果您愿意,可以通过将数组作为参数传递来使其更通用:
function testFunction(fruits, fruitsSpecified) {
var newArray = [];
for (var i = 0; i < fruits.length; i++) {
for(var j = 0; j < fruitsSpecified.length; j++)
{
if(fruitsSpecified[j].indexOf(fruits[i]) != -1)
{
newArray.push(fruitsSpecified[j]);
}
}
}
console.log(newArray);
return newArray;
}
你可以这样调用它:
var fruits = ["Banana", "Apple"];
var fruitsSpecified = ["Big Banana", "Banana Small", "Black Apple", "Big Orange"];
var newArray = testFunction(fruits, fruitsSpecified);
console.log(newArray);
关于javascript - 检查一个数组是否包含javascript中另一个数组的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31169080/