Perbedaan antara beberapa dan filter dalam javascript

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 dikembalikan

Sintaksis

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 berikut

let 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 tahun

console.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
}];
0

console.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 MDN

Filter 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 array
let 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
0

Indeks 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
1

Array 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 Opsional

Nilai 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. Lihat

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 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
7

Metode 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
7

some[] 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 pun

callbackFn 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 ke some[] dimulai
  • Perubahan pada indeks yang sudah dikunjungi tidak menyebabkan callbackFn dipanggil lagi
  • Jika ada elemen array yang belum dikunjungi diubah oleh callbackFn, nilainya diteruskan ke callbackFn 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 bulat

Contoh 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 larik

const 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

Apa yang dilakukan beberapa [] di JavaScript?

Metode some[] menguji apakah setidaknya satu elemen dalam larik lolos dari pengujian yang diterapkan oleh fungsi yang disediakan . Mengembalikan nilai true jika, dalam array, ia menemukan elemen yang fungsi yang disediakan mengembalikan nilai true; .

Apa perbedaan antara find dan some di JavaScript?

Perbedaannya ada di output. find akan mengembalikan nilai, beberapa akan mengembalikan boolean .

Apa kebalikan dari beberapa di JavaScript?

every[] Ini kebalikan dari beberapa metode. Metode Every[] menguji apakah setiap elemen dalam array adalah jenis yang sama dengan yang kita uji.

Apa perbedaan antara beberapa dan termasuk?

beberapa mengambil fungsi panggilan balik di mana Anda dapat menulis logika Anda sendiri untuk menentukan apakah suatu array berisi beberapa elemen yang cocok dengan kondisi yang Anda tulis. termasuk melakukan perbandingan equalTo umum pada setiap elemen dan akan mengembalikan true jika setidaknya satu elemen dalam array sama dengan nilai yang ditemukan

Bài mới nhất

Chủ Đề