Saat mengembangkan aplikasi kebanyakan menggunakan metode array untuk mendapatkan daftar nilai spesifik dan mendapatkan item tunggal atau ganda yang cocok
Sebelum membuat daftar perbedaan antara kedua metode, kami memahami metode satu per satu
Temukan Array JavaScript []
Metode ES6 find[]
mengembalikan nilai elemen pertama yang melewati fungsi pengujian. Jika tidak ada nilai yang memenuhi fungsi pengujian,
let users = [{
id:1,
name: 'John',
age: 22
}, {
id:2,
name: 'Tom',
age: 22
}, {
id:3,
name: 'Balaji',
age: 24
}];
0 dikembalikanSintaksis
Fungsi panah digunakan dalam sintaks di bawah ini
find[[element] => { /* .. */ } ]
find[[element, index] => { /* .. */ } ]
find[[element, index, array] => { /* .. */ } ]
_Kami memiliki daftar objek pengguna dengan
let users = [{
id:1,
name: 'John',
age: 22
}, {
id:2,
name: 'Tom',
age: 22
}, {
id:3,
name: 'Balaji',
age: 24
}];
_1 let users = [{
id:1,
name: 'John',
age: 22
}, {
id:2,
name: 'Tom',
age: 22
}, {
id:3,
name: 'Balaji',
age: 24
}];
2 dan let users = [{
id:1,
name: 'John',
age: 22
}, {
id:2,
name: 'Tom',
age: 22
}, {
id:3,
name: 'Balaji',
age: 24
}];
3 properti sebagai berikutlet users = [{
id:1,
name: 'John',
age: 22
}, {
id:2,
name: 'Tom',
age: 22
}, {
id:3,
name: 'Balaji',
age: 24
}];
Kode berikut menggunakan metode
let users = [{
id:1,
name: 'John',
age: 22
}, {
id:2,
name: 'Tom',
age: 22
}, {
id:3,
name: 'Balaji',
age: 24
}];
_4 untuk menemukan pengguna pertama yang usianya lebih dari 23 tahunconsole.log[users.find[user => user.age > 23]];//console
//{ id: 3, name: 'Balaji', age:24}
Sekarang kita akan menemukan pengguna pertama yang berusia 22 tahun
console.log[users.find[user => user.age === 22]];//console_
//{ id: 1, name: 'John', age:22}
Misalkan tidak ada yang cocok ditemukan berarti mengembalikan
let users = [{
id:1,
name: 'John',
age: 22
}, {
id:2,
name: 'Tom',
age: 22
}, {
id:3,
name: 'Balaji',
age: 24
}];
0console.log[users.find[user => user.age === 25]];//console
//undefined
Pelajari lebih lanjut metode
let users = [{
id:1,
name: 'John',
age: 22
}, {
id:2,
name: 'Tom',
age: 22
}, {
id:3,
name: 'Balaji',
age: 24
}];
_4 di dokumen web MDNFilter Larik JavaScript[]
Metode
let users = [{
id:1,
name: 'John',
age: 22
}, {
id:2,
name: 'Tom',
age: 22
}, {
id:3,
name: 'Balaji',
age: 24
}];
7 membuat array baru dengan semua elemen yang lulus fungsi pengujian. Jika tidak ada elemen yang memenuhi fungsi pengujian, kembalikan arraylet users = [{
id:1,
name: 'John',
age: 22
}, {
id:2,
name: 'Tom',
age: 22
}, {
id:3,
name: 'Balaji',
age: 24
}];
8 Metode some[]
_ menguji apakah setidaknya satu elemen dalam larik lulus uji yang diterapkan oleh fungsi yang disediakan. Mengembalikan nilai true jika, dalam array, ia menemukan elemen yang fungsi yang disediakan mengembalikan nilai true; . Itu tidak mengubah array
// Arrow function
some[[element] => { /* … */ }]
some[[element, index] => { /* … */ }]
some[[element, index, array] => { /* … */ }]
// Callback function
some[callbackFn]
some[callbackFn, thisArg]
// Inline callback function
some[function [element] { /* … */ }]
some[function [element, index] { /* … */ }]
some[function [element, index, array] { /* … */ }]
some[function [element, index, array] { /* … */ }, thisArg]
callbackFn
Fungsi untuk mengeksekusi setiap elemen dalam array. Itu harus mengembalikan kebenaran untuk menunjukkan elemen lulus ujian, dan nilai palsu sebaliknya
Fungsi tersebut dipanggil dengan argumen berikut
element
Elemen saat ini sedang diproses dalam larik
function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
0Indeks elemen saat ini sedang diproses dalam larik
function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
1Array some[]
dipanggil
function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
3 OpsionalNilai untuk digunakan sebagai
function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
_4 saat mengeksekusi callbackFn
. Lihatfunction isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
6 jika fungsi callback mengembalikan nilai kebenaran untuk setidaknya satu elemen dalam array. Jika tidak, function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
7Metode some[]
_ adalah sebuah. Itu memanggil fungsi callbackFn
yang disediakan satu kali untuk setiap elemen dalam array, sampai callbackFn
mengembalikan nilai kebenaran. Jika elemen seperti itu ditemukan, some[]
_ segera mengembalikan
function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
6 dan berhenti mengulang melalui array. Jika tidak, jika callbackFn
mengembalikan nilai yang salah untuk semua elemen, some[]
mengembalikan function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
7some[]
bertindak seperti bilangan "ada" dalam matematika. Khususnya, untuk larik kosong, ia mengembalikan
function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
7 untuk kondisi apa puncallbackFn
dipanggil hanya untuk indeks array yang telah menetapkan nilai. Itu tidak dipanggil untuk slot kosong
some[]
_ tidak memutasikan array yang dipanggil, tetapi fungsi yang disediakan sebagai callbackFn
dapat. Perhatikan, bagaimanapun, bahwa panjang array disimpan sebelum pemanggilan pertama dari callbackFn
. Karena itu
callbackFn
tidak akan mengunjungi elemen apa pun yang ditambahkan melebihi panjang awal array saat panggilan kesome[]
dimulai- Perubahan pada indeks yang sudah dikunjungi tidak menyebabkan
callbackFn
dipanggil lagi - Jika ada elemen array yang belum dikunjungi diubah oleh
callbackFn
, nilainya diteruskan kecallbackFn
akan menjadi nilai pada saat elemen dikunjungi. Elemen yang dihapus tidak dikunjungi
Metode some[]
_ adalah. Itu hanya mengharapkan nilai
function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
_4 memiliki properti const fruits = ["apple", "banana", "mango", "guava"];
function checkAvailability[arr, val] {
return arr.some[[arrVal] => val === arrVal];
}
checkAvailability[fruits, "kela"]; // false
checkAvailability[fruits, "banana"]; // true
9 dan properti dengan kunci bilangan bulatContoh berikut menguji apakah ada elemen dalam array yang lebih besar dari 10
function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
Fungsi panah menyediakan sintaks yang lebih pendek untuk pengujian yang sama
[2, 5, 8, 1, 4].some[[x] => x > 10]; // false
[12, 5, 8, 1, 4].some[[x] => x > 10]; // true
Untuk meniru fungsi metode
const TRUTHY_VALUES = [true, "true", 1];
function getBoolean[value] {
if [typeof value === "string"] {
value = value.toLowerCase[].trim[];
}
return TRUTHY_VALUES.some[[t] => t === value];
}
getBoolean[false]; // false
getBoolean["false"]; // false
getBoolean[1]; // true
getBoolean["true"]; // true
0, fungsi kustom ini mengembalikan function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
6 jika elemen tersebut ada dalam larikconst fruits = ["apple", "banana", "mango", "guava"];
function checkAvailability[arr, val] {
return arr.some[[arrVal] => val === arrVal];
}
checkAvailability[fruits, "kela"]; // false
checkAvailability[fruits, "banana"]; // true
const TRUTHY_VALUES = [true, "true", 1];
function getBoolean[value] {
if [typeof value === "string"] {
value = value.toLowerCase[].trim[];
}
return TRUTHY_VALUES.some[[t] => t === value];
}
getBoolean[false]; // false
getBoolean["false"]; // false
getBoolean[1]; // true
getBoolean["true"]; // true
some[]
_ tidak akan menjalankan predikatnya pada slot kosong
console.log[[1, , 3].some[[x] => x === undefined]]; // false
console.log[[1, , 1].some[[x] => x !== 1]]; // false
console.log[[1, undefined, 1].some[[x] => x !== 1]]; // true
Metode some[]
_ membaca properti
const fruits = ["apple", "banana", "mango", "guava"];
function checkAvailability[arr, val] {
return arr.some[[arrVal] => val === arrVal];
}
checkAvailability[fruits, "kela"]; // false
checkAvailability[fruits, "banana"]; // true
9 dari function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
4 dan kemudian mengakses setiap indeks bilangan bulat hingga akhir tercapai atau callbackFn
mengembalikan function isBiggerThan10[element, index, array] {
return element > 10;
}
[2, 5, 8, 1, 4].some[isBiggerThan10]; // false
[12, 5, 8, 1, 4].some[isBiggerThan10]; // true
6