这是我的第一个阵列:
kaos = [1,2,6,9,15,18,21];
这是第二个阵列:
zeus = [1,3];
我想在indexOf(1, 3)
这是有效的:
kaos.indexOf(1)!=-1;
但这不起作用:
kaos.indexOf(1, 3)!=-1;
或
这也不起作用:
kaos.indexOf(1, 3, 9)!=-1;
我想搜索indexOf(1,3,7,vs),我该怎么办
答案 0 :(得分:0)
您可以使用Array#map
并迭代所需的项目,以检查kaos
是否包含zeus
元素。结果是一个带有布尔值的数组,反映了状态。
var kaos = [1, 2, 6, 9, 15, 18, 21],
zeus = [1, 3],
result = zeus.map(function (value) {
return kaos.indexOf(value) !== -1;
});
console.log(result);
真实世界的例子。
(我建议使用数组而不是字符串来保存数据。)
它将Array#filter
与Array#every
结合使用,只有在元素的所有检查都返回true
时才返回true
。
var $scope = { names: [{ prop_Name: 'Location 1', amenities: '1, 3, 5, 8, 11' }, { prop_Name: 'Location 2', amenities: '1, 3, 5, 8, 11' }, { prop_Name: 'Location 3', amenities: '1, 4, 14, 7, 11' }, { prop_Name: 'Location 4', amenities: '17, 3, 25, 8, 11' }, { prop_Name: 'Location 5', amenities: '2, 34, 50, 8, 11' }] },
amenities = [3, 8],
result = $scope.names.filter(function (n) {
return amenities.every(function (a) {
return n.amenities.split(', ').map(Number).indexOf(a) !== -1;
});
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:0)
它也确保你找到独特的。
var kaos = [1, 2, 6, 9, 15, 18, 21],
zeus = [1, 15];
zeus.every(function (element) {
if (kaos.indexOf(element) > -1) {
kaos.splice(kaos.indexOf(element), 1);
return true;
};