配列内の配列の有無を検索する必要があります。これはjQuery.inArray関数に似ています。配列内の配列の検索
は
var a = [ [1,2], [1,3] ];
console.log( jQuery.inArray([1,3],a ))
のために私が得る-1 ANSとして。これを行う方法?
(つまり、クロムである)あなたのV8で
配列内の配列の有無を検索する必要があります。これはjQuery.inArray関数に似ています。配列内の配列の検索
は
var a = [ [1,2], [1,3] ];
console.log( jQuery.inArray([1,3],a ))
のために私が得る-1 ANSとして。これを行う方法?
(つまり、クロムである)あなたのV8で
ありがとう、気の利いたトリックがあります:==
は<= && >=
はありません、配列のために動作しませんが。
あなたが反復処理し、それがappearentだ場合は、各項目をチェックすることができます。
http://www.svendtofte.com/code/usefull_prototypes/prototypes.js
Array.prototype.compareArrays = function(arr) {
if (this.length != arr.length) return false;
for (var i = 0; i < arr.length; i++) {
if (this[i].compareArrays) { //likely nested array
if (!this[i].compareArrays(arr[i])) return false;
else continue;
}
if (this[i] != arr[i]) return false;
}
return true;
}
:あなたは、配列の平等をチェックする機能が必要と思い、他のブラウザのために
for(var i = 0; i < a.length; i++) {
if(a[i] >= [1, 3] && a[i] <= [1, 3]) alert(i);
}
次に:
for(var i = 0; i < a.length; i++) {
if(a[i].compareArrays([1, 3])) alert(i);
}
function inArray (needle, haystack) {
for (var idx in haystack) {
if (haystack[idx].join(',') == needle.join(','))
return idx;
}
return -1;
}
いいですが、[[1,2]、3] .join( "、")=== [1、[2,3]]。join( "、") 'それで100%信頼できない – pimvdb
はしてみてください。この
function look4arr(arr, v) {
for (var i = 0, l = arr.length; i < l; i += 1) {
if (arr[i].toString() === v.toString()) { //or use +''
return true;
}
}
return false;
}
var a = [[1,2], 2],
ok = [1,2],
ko = [2,3]
look4arr(a, ok); // true
look4arr(a, ko); // false
// as far as the array you are looking at contains primitives seem to work fine
あなたが何かを検索する必要がある場合は、「より多くの」...私は、オブジェクトリテラル、正規表現、あなたは以下の1
function look4x(arr, v) {
for (var i = 0, isObjOrArray = false, l = arr.length; i < l; i += 1) {
isObjOrArray = {}.toString.call(arr[i]).match(/\[object\s(Array|Object)\]/);
if (
(isObjOrArray && JSON.stringify(arr[i])+'' == JSON.stringify(v)+'')
||
(!isObjOrArray && arr[i].toString() === v.toString())
) {
return true;//or i if a jQuery.inArray output is needed
}
}
return false; // or -1 ... if ... jQuery.inArray
}
var a = [
[1,[1,[1,[1,2]]]],
2,
true,
'hei',
Infinity,
{"o" : "s", 'd':[1,2,3]},
new RegExp(/\s/),
function(){alert('hei');}
],
ok = [1,[1,[1,[1,2]]]];
alert(
look4x(a, [1,[1,[1,[1,2]]]])
&&
look4x(a, true)
&&
look4x(a, 'hei')
&&
look4x(a, Infinity)
&&
look4x(a, {"o" : "s", 'd':[1,2,3]})
&&
look4x(a, new RegExp(/\s/))
&&
look4x(a, function(){alert('hei');})
); // true, in this case
と同様の機能を使用することができ 機能を意味します
私はまだ完全なテストでテストしていません。私はテストをできるだけ早く投稿します
イベント私が遅刻していると思われる場合、それが誰かを助けることを願っています。
bye
他のブラウザについて – robert
@robert:私の編集を参照してください。 – pimvdb
@pmvidb ...ありがとう – robert