如何确定给定值是否属于某些值?类似于SQL中的IN
运算符或者您可能期望的集合。我们假设集合为{male,female,xyz}
。我想找到男性是否在集合中。
答案 0 :(得分:1)
in
运算符确实存在于JavaScript中。但它会检查对象上是否存在属性。
您可以使用对象哈希或数组:
var values = {male: true, female: true, xyz: true}
var valueToSearch = 'female';
valueToSearch in values; //true
var values = ['male', 'female', 'xyz']
values.indexOf(valueToSearch) !== -1 // true
编辑: 使用RegExp:
if(pattern.test(search)) {
//search found
}
答案 1 :(得分:0)
我认为你需要的是indexOf
。查看此示例以了解如何使用它:
答案 2 :(得分:0)
如果您在数组中表示可以使用indexOf
var find = 'male';
var haystack = ['female', 'male', 'xyz'];
alert((haystack.indexOf(find) >= 0));
答案 3 :(得分:0)
var objNames = {
"Michigan": "MI",
"New York": "NY",
"Coffee": "yes, absolutely"
};
var arrNames = [
"Michigan", "New York", "Coffee"
]
function isIn(term, list) {
var i, len;
var listType = Object.prototype.toString.call(list);
if (listType === '[object Array]') {
for (i = 0, len = list.length; i < len; i++) {
if (term === listType[i]) { return true; }
}
return false;
}
if (listType === '[object Object]') {
return !!list[term]; // bang-bang is used to typecast into a boolean
}
// What did you sent to me?!
return false;
}
var michiganExists = isIn('Michigan', objNames); // true
我没有使用indexOf,因为op没有提到浏览器支持,而indexOf不适用于所有版本的Internet Explorer(粗略!)