javascript - 检查一个数组是否包含javascript中另一个数组的一部分

标签 javascript arrays

我要开门见山了。我有两个数组:

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/

相关文章:

java - 如何将数组元素移位n次?

c++ - 如何打印二维字符数组 C++

c# - 从 xml 加载对象,在动态 UI 中编辑值并保存回 xml

javascript - jquery datatable 为对象初始化表添加复选框

javascript - 如何从 JavaScript 中的 url 解析 json(嵌套)

javascript - 查找特定 td 的第一个单词并在其他地方复制

c++ - 如何从 getter 函数中的类返回结构数组

java - 从数组中删除特定元素

javascript - 在 .bind ('click' 上)它不会删除第一个 div

javascript - 在 Javascript (Vue.js) 中按多种美食过滤位置