私はこれを持っていると言う
imageList = [100,200,300,400,500];
それは私に与えます
[0]100 [1]200
等
JavaScript で値を含むインデックスを返す方法はありますか?
つまり、 200のインデックスが必要な場合、 1が返されます。
私はこれを持っていると言う
imageList = [100,200,300,400,500];
それは私に与えます
[0]100 [1]200
等
JavaScript で値を含むインデックスを返す方法はありますか?
つまり、 200のインデックスが必要な場合、 1が返されます。
使用できますindexOf
:
var imageList = [100,200,300,400,500];
var index = imageList.indexOf(200); // 1
配列内に値が見つからない場合は -1 が返されます。
オブジェクト配列map
の場合indexOf
:
var imageList = [
{value: 100},
{value: 200},
{value: 300},
{value: 400},
{value: 500}
];
var index = imageList.map(function (img) { return img.value; }).indexOf(200);
console.log(index);
最新のブラウザーでは、次を使用できますfindIndex
。
var imageList = [
{value: 100},
{value: 200},
{value: 300},
{value: 400},
{value: 500}
];
var index = imageList.findIndex(img => img.value === 200);
console.log(index);
ES6 の一部であり、 Chrome、FF、Safari、および Edge でサポートされています
jQuery の関数 jQuery.inArrayを使用する
jQuery.inArray( value, array [, fromIndex ] )
(or) $.inArray( value, array [, fromIndex ] )
indexOf を使用する
imageList.indexOf(200)
どうindexOf
ですか?
alert(imageList.indexOf(200));
Array.indexOf
一部のバージョンの Internet Explorer では動作しません - ただし、別の方法がたくさんあります ... この質問 / 回答を参照してください:配列に JavaScript のオブジェクトが含まれているかどうかを確認するにはどうすればよいですか?
リストがそれほど長くない場合、これが私が知っている最善の方法です。
function getIndex(val) {
for (var i = 0; i < imageList.length; i++) {
if (imageList[i] === val) {
return i;
}
}
}
var imageList = [100, 200, 300, 400, 500];
var index = getIndex(200);