javascript - 在新数组JS中查找一个数组是否有对应另一个元素的子串

标签 javascript

我从 promise 中获取“名称”的值,并将其存储在一个数组中,因为它可能包含多个名称。

var name = ["Arun_Manohar"];
var combinations = ["abc", "def", "ghi", "har", "lmn"];

假设我有一个事件对象。

var activities = {
    driving: false,
    jogging: false,
    drinking: false
}

在这种情况下,我该如何着手编写检查以更新事件对象。 注意:组合数组中没有两个元素是名称数组的子字符串。就一个。

案例:由于名称包含组合元素之一的子字符串,我需要更新事件对象。如果名称包含“abc”之类的子字符串,我将使用不同的值更新对象。

使用 lodash 会很棒。

尝试了一些但无法更新对象。

if(name.indexOf(_.filter(combinations, function(e) { return.indexOf("har") !== -1})) !== -1) {
    activities.driving= true;
    activities.jogging= true;
}

如果名称包含“abcpoc”,因为子字符串存在于组合数组中,我用一组不同的值更新对象。

最佳答案

如果您使用的是 lodash,则可以使用 _.intersectionWith,使用使用 indexOf() 的比较函数。

matched_combos = _.intersectionWith(combinations, names, (combo, name) => name.indexOf(combo) != -1);

然后您可以遍历 matched_combos 以向 activities 添加适当的内容:

matched_combos.forEach(str => {
    switch(str) {
        "har":
            activities.driving = true;
            activities.jogging = true;
            break;
        ...
    }
});

关于javascript - 在新数组JS中查找一个数组是否有对应另一个元素的子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46478161/

相关文章:

javascript - 如何从共享点列表中检索 json 对象

javascript - 从 Node.js 中对象的键值中提取值

javascript - 如何从另一个模型访问一个模型属性以在 Rails 5 中传递 javascript View 部分?

javascript - Angular 谷歌地图 api key 未通过

javascript - addEventListener 期间 Function 不是函数

javascript - 使用 jQuery 在特定的 <td> 元素中选择 &lt;input&gt;

javascript - jquery向下滚动时如何获取浏览器屏幕窗口的位置

javascript - fabric.js 点击按钮返回未定义

javascript - 如何在 jquery 中使用 name 和 attr 设置选中的单选按钮?

javascript - React-native 忽略了 StyleSheet 中我所有的容器样式