Rumah  >  Artikel  >  hujung hadapan web  >  Apakah fungsi penapis dalam es6

Apakah fungsi penapis dalam es6

青灯夜游
青灯夜游asal
2023-01-29 14:41:081188semak imbas

Dalam es6, penapis penapis menapis elemen tatasusunan dan mengembalikan tatasusunan baharu. Fungsi penapis() mencipta tatasusunan baharu yang mengandungi semua elemen ujian yang dilaksanakan melalui fungsi panggil balik yang disediakan, sintaks "arr.filter(panggilan balik(elemen[, indeks[, tatasusunan]])[, thisArg])"; tiada elemen tatasusunan lulus ujian, tatasusunan kosong dikembalikan.

Apakah fungsi penapis dalam es6

Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.

tapis dalam ES6

Fungsi penapis biasanya dikenali sebagai penapis Fungsi: Menapis elemen tatasusunan dan mengembalikan tatasusunan baharu ;

Kaedah penapis() mencipta tatasusunan baharu yang mengandungi semua elemen ujian yang dilaksanakan oleh fungsi yang disediakan.

var sexData=["男","女","女","男","女"];
var filter2=sexData.filter(function(sex){
	return sex==="女"
})

//console.log(filter2)    ["女", "女", "女"]
var porducts = [
	{name: 'apple',type: 'red'} ,
	{name: 'orange',type: 'orange'},
	{name: 'banana',type: 'yellow'},
	{name: 'mango',type: 'yellow'}
];
var filter2=porducts.filter(function(item){
	return item.type==='yellow'
})
//console.log(filter2)
//0: {name: "banana", type: "yellow"}1: {name: "mango", type: "yellow"}

Sintaks

var newArray = arr.filter(
  callback(element[, index[, array]])[, thisArg]
)

Parameter

  • panggilan balik: fungsi panggil balik

  • elemen: data sedang diproses dalam tatasusunan arr

  • indeks: subskrip elemen, tatasusunan

  • pilihan : tatasusunan itu sendiri yang memanggil penapis, pilihan

  • thisArg: nilai yang digunakan untuk ini semasa melaksanakan panggilan balik, pilihan

kembalikan Nilai

  • Tatasusunan baharu yang terdiri daripada elemen yang lulus ujian, atau tatasusunan kosong jika tiada elemen tatasusunan lulus ujian.

Penerangan

  • penapis memanggil fungsi panggil balik sekali untuk setiap elemen dalam tatasusunan dan menggunakan semua elemen untuk menjadikan panggilan balik kembali benar atau setara to true Mencipta tatasusunan baharu dengan unsur nilai. panggil balik hanya akan dipanggil pada indeks yang telah diberikan nilai, dan tidak akan dipanggil pada indeks yang telah dipadamkan atau tidak pernah diberikan nilai. Elemen yang gagal dalam ujian panggil balik akan dilangkau dan tidak akan disertakan dalam tatasusunan baharu.

  • Apabila panggil balik dipanggil, tiga parameter dihantar masuk: nilai elemen, indeks elemen dan tatasusunan itu sendiri sedang dilalui
    Jika parameter thisArg disediakan untuk penapis, ia akan menjadi Sebagai nilai ini apabila panggilan balik dipanggil. Jika tidak, nilai panggilan balik ini akan menjadi objek global dalam mod tidak ketat dan tidak ditentukan dalam mod ketat. Nilai ini akhirnya diperhatikan oleh fungsi panggil balik ditentukan mengikut peraturan "ini" yang dilihat oleh fungsi normal.

  • penapis tidak mengubah tatasusunan asal, ia mengembalikan tatasusunan ditapis baharu.

  • Julat elemen yang dilalui oleh penapis telah ditentukan sebelum panggilan balik dipanggil buat kali pertama. Elemen yang ditambahkan pada tatasusunan selepas penapis dipanggil tidak akan dilalui oleh penapis. Jika elemen sedia ada telah diubah, nilai yang mereka hantar ke panggilan balik adalah nilai pada masa penapis melintasinya. Elemen yang dipadamkan atau tidak pernah diberikan nilai tidak akan dilalui.

Penggunaan khas:

1. Keluarkan rentetan kosong, tidak ditentukan, batal

array.filter((value, index, arr) => {value})

2. Keluarkan tatasusunan Ulang

array.filter((value, index, arr) => {arr.indexOf(value) === index})

Contoh

1 Tapis entri yang tidak sah dalam JSON

Contoh berikut menggunakan penapis() untuk mencipta elemen dengan id bukan sifar json.

var arr = [
  { id: 15 },
  { id: -1 },
  { id: 0 },
  { id: 3 },
  { id: 12.2 },
  { },
  { id: null },
  { id: NaN },
  { id: 'undefined' }];var invalidEntries = 0;function isNumber(obj) {
  return obj !== undefined && typeof(obj) === 'number' && !isNaN(obj);}function filterByID(item) {
  if (isNumber(item.id) && item.id !== 0) {
    return true;
  } 
  invalidEntries++;
  return false; }var arrByID = arr.filter(filterByID);console.log('Filtered Array\n', arrByID); // Filtered Array// [{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }]console.log('Number of Invalid Entries = ', invalidEntries); // Number of Invalid Entries = 5

2. Alih keluar rentetan kosong, tidak ditentukan, batal

//2. 去掉空字符串、undefined、null
var porducts = [
	{name:''},
	{name:"哈哈"}
];
var filter2=porducts.filter(function(item){
	return item.name
})
//console.log(filter2)    
//打印得出  0: {name: "哈哈"}

3 Alih keluar pendua daripada tatasusunan

//3. 数组去重
array.filter((value, index, arr) => {arr.indexOf(value) === index})
var porducts = ['苹果','香蕉','苹果','芒果']
var filter2=porducts.filter(function(item,index,porducts){
	return porducts.indexOf(item)==index
})
//console.log(filter2)
// ["苹果", "香蕉", "芒果"]

[Pembelajaran yang disyorkan: <.>Tutorial lanjutan JavaScript

Atas ialah kandungan terperinci Apakah fungsi penapis dalam es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn