如何找出给定值是否在某些值中?类似于IN
SQL 中的运算符或您对集合的期望。假设 set 是{male,female,xyz}
. 我想知道男性是否在集合中。
问问题
61 次
4 回答
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
编辑:使用正则表达式:
if(pattern.test(search)) {
//search found
}
于 2013-08-23T12:25:33.783 回答
0
我想你需要的是indexOf
. 检查此示例以了解如何使用它:
于 2013-08-23T12:27:31.713 回答
0
如果你的意思是在一个数组中,你可以使用indexOf
var find = 'male';
var haystack = ['female', 'male', 'xyz'];
alert((haystack.indexOf(find) >= 0));
于 2013-08-23T12:27:45.777 回答
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 因为操作没有提到浏览器支持,并且 indexOf 不适用于所有版本的 Internet Explorer(恶心!)
于 2013-08-23T12:45:43.223 回答