我有2个阵列:
labels = ["water", "sever", "electricity"];
services = [0:[0:"1",1:"sever"], 1:[0:"3",1:"park"], 3:[0:"4",1:"gas"]];
我想检查labels
中services
的 ANY 是否在services
中(真或假)。
使用jquery对此进行归档的最佳方法是什么?
编辑1:
是的,我在提问时犯了一个错误,.some
是一个JSON对象。
更新
Bregi的第二个解决方案就是我所需要的。 var isInAny = labels.some(function(label) {
return services.some(function(s) {
return s[1] == label;
});
});
正在实现目标。
{{1}}
答案 0 :(得分:1)
假设在services
labels.some(function (label) {
for (var x in services) {
if (services.hasOwnProperty(x)) {
return services[x][1] === label;
}
}
});
答案 1 :(得分:1)
这在这里经常被回答。你可能想看看^^
但是,给你一个答案:在服务上使用$ .each来生成一个带有字符串的新数组,并将其与标签数组进行比较。
答案 2 :(得分:1)
使用some
Array method(尽管您可能需要为旧版环境填充它):
var isInAny = labels.some(function(label) {
// since we don't know whether your services object is an actual array
// (your syntax is invalid) we need to choose iteration/enumeration
if (typeof services.length == "number") {
for (var i=0; i<services.length; i++)
if (services[i][1] == label)
return true;
} else {
for (var p in services)
if (services[p][1] == label)
return true;
}
return false;
});
如果services
确实是一个数组,您也可以使用
var isInAny = labels.some(function(label) {
return services.some(function(s) {
return s[1] == label;
});
});