Katakan saya punya ini
imageList = [100,200,300,400,500];
Yang memberi saya
[0]100 [1]200
dll.
Apakah ada cara dalam JavaScript untuk mengembalikan indeks dengan nilai?
Yaitu saya ingin indeks untuk 200 , saya kembali 1 .
Katakan saya punya ini
imageList = [100,200,300,400,500];
Yang memberi saya
[0]100 [1]200
dll.
Apakah ada cara dalam JavaScript untuk mengembalikan indeks dengan nilai?
Yaitu saya ingin indeks untuk 200 , saya kembali 1 .
Jawaban:
Anda bisa menggunakan indexOf
:
var imageList = [100,200,300,400,500];
var index = imageList.indexOf(200); // 1
Anda akan mendapatkan -1 jika tidak dapat menemukan nilai dalam array.
Untuk penggunaan array objekmap
dengan 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);
Di browser modern, Anda dapat menggunakan findIndex
:
var imageList = [
{value: 100},
{value: 200},
{value: 300},
{value: 400},
{value: 500}
];
var index = imageList.findIndex(img => img.value === 200);
console.log(index);
Itu bagian dari ES6 dan didukung oleh Chrome, FF, Safari dan Edge
Gunakan fungsi jQuery, jQuery.inArray
jQuery.inArray( value, array [, fromIndex ] )
(or) $.inArray( value, array [, fromIndex ] )
Berikut ini cara lain menemukan indeks nilai dalam array kompleks dalam javascript. Semoga membantu seseorang. Mari kita asumsikan kita memiliki array JavaScript sebagai berikut,
var studentsArray =
[
{
"rollnumber": 1,
"name": "dj",
"subject": "physics"
},
{
"rollnumber": 2,
"name": "tanmay",
"subject": "biology"
},
{
"rollnumber": 3,
"name": "amit",
"subject": "chemistry"
},
];
Sekarang jika kita memiliki persyaratan untuk memilih objek tertentu dalam array. Mari kita asumsikan bahwa kita ingin menemukan indeks siswa dengan nama Tanmay.
Kita bisa melakukannya dengan mengulangi melalui array dan membandingkan nilai pada kunci yang diberikan.
function functiontofindIndexByKeyValue(arraytosearch, key, valuetosearch) {
for (var i = 0; i < arraytosearch.length; i++) {
if (arraytosearch[i][key] == valuetosearch) {
return i;
}
}
return null;
}
Anda dapat menggunakan fungsi ini untuk menemukan indeks elemen tertentu seperti di bawah ini,
var index = functiontofindIndexByKeyValue(studentsArray, "name", "tanmay");
alert(index);
Array.indexOf
tidak bekerja di beberapa versi internet explorer - ada banyak cara alternatif untuk melakukannya ... lihat pertanyaan / jawaban ini: Bagaimana cara saya memeriksa apakah array menyertakan objek dalam JavaScript?
Dimungkinkan untuk menggunakan suatu ES6
fungsi Array.prototype.findIndex
.
The
findIndex()
method mengembalikan indeks dari elemen pertama dalam array yang memenuhi disediakan pengujian fungsi. Kalau tidak -1 dikembalikan.
var fooArray = [5, 10, 15, 20, 25];
console.log(fooArray.findIndex(num=> { return num > 5; }));
// expected output: 1
Temukan indeks berdasarkan properti objek.
Untuk menemukan indeks berdasarkan properti objek:
yourArray.findIndex(obj => obj['propertyName'] === yourValue)
Misalnya, ada array seperti itu:
let someArray = [
{ property: 'OutDate' },
{ property: 'BeginDate'},
{ property: 'CarNumber' },
{ property: 'FirstName'}
];
Kemudian, kode untuk menemukan indeks properti yang diperlukan terlihat seperti itu:
let carIndex = someArray.findIndex( filterCarObj=>
filterCarObj['property'] === 'CarNumber');
Inilah pendapat saya, sepertinya sebagian besar solusi orang tidak memeriksa apakah item ada dan menghapus nilai acak jika tidak ada.
Pertama periksa apakah elemen ada dengan mencari indeksnya . Jika memang ada, hapus dengan indeks menggunakan metode splice
elementPosition = array.indexOf(value);
if(elementPosition != -1) {
array.splice(elementPosition, 1);
}
Array referensi:
var array = [
{ ID: '100', },
{ ID: '200', },
{ ID: '300', },
{ ID: '400', },
{ ID: '500', }
];
Menggunakan filter
dan indexOf
:
var in_array = array.filter(function(item) {
return item.ID == '200' // look for the item where ID is equal to value
});
var index = array.indexOf(in_array[0]);
Looping melalui setiap item dalam array menggunakan indexOf
:
for (var i = 0; i < array.length; i++) {
var item= array[i];
if (item.ID == '200') {
var index = array.indexOf(item);
}
}
// Instead Of
var index = arr.indexOf(200)
// Use
var index = arr.includes(200);
Harap Catatan : Termasuk fungsi adalah metode contoh sederhana pada array dan membantu untuk dengan mudah menemukan jika suatu item ada dalam array (termasuk NaN tidak seperti indexOf)