在多个数组中搜索一个字符串,然后设置一个jQuery变量
Search multiple arrays for a string and then set a var - jQuery
我希望设置一个变量,该变量基于字符串存在的数组。
例如:var primary = ["red", blue", "yellow"];
var secondary = ["orange", "purple", "green"];
然后检查"purple",并返回它在"secondary"数组中,并将其赋值给一个变量以供以后使用。
不确定要给变量赋什么值,所以我只使用警报来说明结果
var plen = primary.length;
var idx = $.inArray( 'purple', primary.concat( secondary ) );
if( idx === -1 ) {
alert( 'not found' );
} else if( idx < plen ) {
alert( idx + ' in primary' );
} else {
alert( (idx - plen) + ' in secondary' );
}
例子: http://jsfiddle.net/S9WL6/
那么你可以把它变成一个可重用的函数:
function inArrays( val, arr1, arr2 ) {
var len1 = arr1.length;
var idx = $.inArray( val, arr1.concat( arr2 ) );
var ret = {index:idx,array:null};
if( idx > -1 ) {
if( idx < len1 ) {
ret.array = arr1;
} else {
ret.array = arr2;
ret.index -= len1;
}
}
return ret;
}
inArrays( 'purple', primary, secondary );
EDIT:或者使其成为一个可以接受可变数量数组的函数。
例子: http://jsfiddle.net/5pZUQ/
var first = ["red", "blue", "yellow"];
var second = ["orange", "purple", "green"];
var third = ["brown", "black", "white"];
function inArrays(val) {
var arrays = Array.prototype.slice.call(arguments, 1);
var len = 0;
var i = 0;
var idx = $.inArray(val, [].concat.apply([], arrays));
var ret = {
index: idx,
array: null
};
if (idx > -1) {
do {
ret.array = arrays[i];
ret.index = idx - len;
len += arrays[i].length;
i++;
} while (idx >= len)
}
return ret;
}
console.log( inArrays('white', first, second, third) );
相关文章:
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 转到另一个页面,然后立即触发ScrollTo
- 多个下载链接到一个zip文件,然后再下载javascript
- 如何将src的值放在一个输入中,然后在另一个页面上显示它
- 在Django中,可以在视图中创建一个包含js的变量,然后在循环模板标记中使用它
- 如何更改javascript的一个变量,然后运行;“加载”;而无需重新加载页面
- 使用javascript从表单发布一个值,然后使用php发布
- 需要一个链接才能转到某个页面,然后快速返回到当前页面
- 在输入字段中选择一个值,然后用相应的数据填充另一个字段
- 如何拆分一个字符串,然后将它们与另一个字符串匹配
- 如何每 10 秒调用一次 JS 函数,然后以角度激活一个函数
- 在每个循环上完成异步调用,然后转到下一个节点 js
- 为什么我们被教导将document.getElementById(“id”)分配给一个变量,然后将该变量与属性一起使用
- 蓝鸟与猫鼬,类型错误:.create(..).然后(..).Nodeify不是一个函数
- 如何自动从一个页面移动到另一个页面,然后回到 html 表格中分页的第一页
- 如何要求用户输入一个介于 1 和 50 之间的整数,然后小程序打印出一行这个星数
- 你如何链承诺,但改变类型从一个然后到另一个
- 给出一个“selected”类.点击另一个然后删除类,如果它是相同的