我从 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/