我有一个包含三个元素的arrayX,我使用$ .inArray()在另一个arrayY中搜索这三个元素...并返回Y中每个X元素的位置
X = [1,2,3] ;
y = [1,5,6,1,6,9,3,2] ;
但y
中有重复,1 y[0]
和y[3]
发生了两次
真实的例子是http://jsfiddle.net/minagabriel/kHG9K/
如何获得前1个入住率并跳过其他人?
我正在推动阵列中1,2,3的位置,每个阵列发生第一次
答案 0 :(得分:1)
没有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);
z
是一个对象,包含来自x
的元素作为键及其作为值的位置。
更新。将此应用于您的示例,以下是可行的解决方案:http://jsfiddle.net/kHG9K/19/
答案 1 :(得分:0)
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);
<小时/> 编辑:如下所述,indexOf()在旧版本的IE中不可靠。这是一个更惯用的jQuery方法:
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); });
答案 2 :(得分:0)
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() );
答案 3 :(得分:0)
我刚刚找到数组中的项目。
if (start >= 0) {
alert(y[i] + " " + "found it" + " " + " location" + z);
y[i] = null;
}
注意:这不是循环数组的正确方法。使用for(index;index<length;index++)
来避免怪癖。
答案 4 :(得分:0)
小提琴链接:click here
你必须使用:
$.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 。
小提琴链接:click here