Apakah fungsi penapis dalam es6

青灯夜游
Lepaskan: 2023-01-29 14:41:08
asal
1200 orang telah melayarinya

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)    ["女", "女", "女"]
Salin selepas log masuk
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"}
Salin selepas log masuk

Sintaks

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

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})
Salin selepas log masuk

2. Keluarkan tatasusunan Ulang

array.filter((value, index, arr) => {arr.indexOf(value) === index})
Salin selepas log masuk

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
Salin selepas log masuk

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: "哈哈"}
Salin selepas log masuk

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)
// ["苹果", "香蕉", "芒果"]
Salin selepas log masuk

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

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan