是使用javascript的给定值列表中的值吗?
如何确定给定值是否在某些值中?类似于SQL中的运算符中的,或者您可能期望从集合中得到的内容。让我们假设集合是是使用javascript的给定值列表中的值吗?,javascript,boolean,set,Javascript,Boolean,Set,如何确定给定值是否在某些值中?类似于SQL中的运算符中的,或者您可能期望从集合中得到的内容。让我们假设集合是{male,female,xyz}。我想知道是否有男性在这个集合中。这个操作符确实存在于JavaScript中。但它检查对象上是否存在属性 您可以使用对象哈希或数组: var values = {male: true, female: true, xyz: true} var valueToSearch = 'female'; valueToSearch in values; //tru
{male,female,xyz}
。我想知道是否有男性在这个集合中。这个操作符确实存在于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
}
我想你需要的是
indexOf
。检查此示例以了解如何使用它:
如果您的意思是在数组中可以使用 对象 排列 作用 注
我没有使用indexOf,因为op没有提到浏览器支持,而且indexOf不适用于所有版本的Internet Explorer(gross!)var pattern=new RegExp(男性|女性| xyz);var search=“malee”;我想知道搜索是否符合真-假的模式…在我的示例中,答案应该是假请参考我尝试使用的RegExp的文档。。var模式=新的RegExp((男性|女性| xyz),“i”);变量搜索='男性';if(pattern.test(search)){//search found}
var find = 'male';
var haystack = ['female', 'male', 'xyz'];
alert((haystack.indexOf(find) >= 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