我有一个包含三个元素的数组 X,我正在使用 $.inArray() 在另一个数组 Y 中搜索这三个元素 ...并返回 Y 中每个 X 元素的位置
X = [1,2,3] ;
y = [1,5,6,1,6,9,3,2] ;
但是有重复, 1 在和中y
出现了两次y[0]
y[3]
真实的例子在这里http://jsfiddle.net/minagabriel/kHG9K/
如何获得前 1 人入住并跳过其他人?
我将 1,2,3 的位置推到一个数组中,每个位置第一次出现
我有一个包含三个元素的数组 X,我正在使用 $.inArray() 在另一个数组 Y 中搜索这三个元素 ...并返回 Y 中每个 X 元素的位置
X = [1,2,3] ;
y = [1,5,6,1,6,9,3,2] ;
但是有重复, 1 在和中y
出现了两次y[0]
y[3]
真实的例子在这里http://jsfiddle.net/minagabriel/kHG9K/
如何获得前 1 人入住并跳过其他人?
我将 1,2,3 的位置推到一个数组中,每个位置第一次出现
这在没有 jQuery 的情况下可以正常工作,并且$.inArray
:
x = [1,2,3] ;
y = [1,5,6,1,6,9,3,2] ;
var z = {};
for (var i = 0; i < x.length; i++)
for (var j = 0; j < y.length; j++)
if (x[i] == y[j]) {
z[x[i]] = j;
break;
}
console.log(z);
<code>z 是一个对象,其中包含元素 fromx
作为键,其位置作为值。
更新。将此应用于您的示例,这是可行的解决方案:http: //jsfiddle.net/kHG9K/19/
var x = [1,2,3];
var firstOccurrences = [];
var y = [1,5,6,1,6,9,3,2];
for (var i = 0, len = x.length; i < len; i++) {
firstOccurrences.push(y.indexOf(x[i]));
}
console.log(firstOccurrences);
var x = [1,2,3];
var y = [1,5,6,1,6,9,3,2];
var firstOccurrences = $.map(x, function(item) { return $.inArray(item, y); });
一旦找到它,我就从数组中删除它。
if (start >= 0) {
alert(y[i] + " " + "found it" + " " + " location" + z);
y[i] = null;
}
注意:这不是循环数组的正确方法。用于for(index;index<length;index++)
避免怪癖。
jsFiddle:http: //jsfiddle.net/kHG9K/16/
var x = [1,2,3] ;
var y = [1,5,6,1,6,9,3,2] ;
function firstOccurence()
{
for ( var a in x )
{
return $.inArray( x[a] , y );
}
}
alert( firstOccurence() );
小提琴链接:点击这里
你必须使用:
$.inArray( value, array [, fromIndex] )
在您的情况下,要从 y 数组中获取值 1 的索引,您可以简单地使用:
$.inArray('1', y)
检查 x 的每个值,如果存在于 y 中,并将每个索引保存在第三个数组 z 中:
var x = [1,2,3], y = [1,5,6,1,6,9,3,2], z = new Array(), i;
for(i = 0; i < x.length; i++) {
var indexInY = $.inArray(x[i], y); // You get index -1 if the value is not found.
z.push(indexInY);
alert("Does x[" + i + "] with value = " + x[i] +
" exist in y array? " +
((indexInY != -1) ? "Yes at position " + indexInY + "." : "No.")
);
}
alert("Indexes of x elements in y: [" + z + "]");
// Results:
// Does x[0] with value = 1 exist in y array? Yes at position 0.
// Does x[1] with value = 2 exist in y array? Yes at position 7.
// Does x[2] with value = 3 exist in y array? Yes at position 6.
//
// Indexes of x elements in y: [0,7,6]
请注意,如果在数组中找不到您要查找的值,您将收到索引-1 。</p>
小提琴链接:点击这里