我有一个 2 数组
var arr1 = ['A','B','C','D']
var arr2 = ['A~XX','A~XXX','B~YY','B~YYY']
我想将包含 'A' 的 arr2 元素推送到 op_array
var op_array = new Array();
我的 op_array 应该看起来像这样,如果“A”通过了这个
['A~XX','A~XXX']
如果“B”通过则
['B~YY','B~YYY']
我一直在尝试这个
op_array = arr1.filter(item => !arr2.split(/~/)[1].includes(item));
好奇学习一种有效的方法。
要根据传递的值(如“A”或“B”)实现过滤
arr2
的所需行为,您可以将 filter
方法与 includes
结合使用。
var arr1 = ['A', 'B', 'C', 'D'];
var arr2 = ['A~XX', 'A~XXX', 'B~YY', 'B~YYY'];
function filterArrayByKey(key) {
return arr2.filter(item => item.startsWith(key + '~'));
}
var op_array_A = filterArrayByKey('A');
console.log(op_array_A); // ['A~XX', 'A~XXX']
var op_array_B = filterArrayByKey('B');
console.log(op_array_B); // ['B~YY', 'B~YYY']