簡體   English   中英

filter()返回空數組

[英]filter() returns empty array

在看似無窮無盡的array中學習新語言的下一個noob問題。 是的,我覺得我什么都不知道。 是的,我知道這很容易。 不,我自己無法弄明白。

我有一個我試圖通過過濾器訪問的數組。 沒有特別的原因,只是對其中一個免費編碼網站的挑戰:

 var cand = [ { name: 'Kevin', alter: 19, }, { name: 'Walter', alter: 22, }, { name: 'Herbert', alter: 28, }, { name: 'Kristin', alter: 31, }, { name: 'Obergine', alter: 39, }, { name: 'Hailey', alter: 44, } ]; var alter = function(){ return cand.alter < 30; } var filter = cand.filter(alter); filter; 

這將返回一個空數組。 我有一種感覺,我沒有正確訪問每個alter property。 我也有一種感覺,我需要一個循環遍歷每個人的屬性的循環。 請幫忙,謝謝

設置過濾器函數的參數並在返回中使用它。

 var cand = [{name: 'Kevin',alter: 19,},{name: 'Walter',alter: 22,},{name: 'Herbert',alter: 28,},{ name: 'Kristin',alter: 31,},{name: 'Obergine',alter: 39,},{name: 'Hailey',alter: 44,}]; // add argument to the filter function | element var alter = function(element) { return element.alter < 30; //use the argument here. } var filter = cand.filter(alter); console.log(filter); 

您需要為回調添加參數。

var alter = function(cand) {
//                   ^^^^
    return cand.alter < 30;
}

 var cand = [{ name: 'Kevin', alter: 19 }, { name: 'Walter', alter: 22 }, { name: 'Herbert', alter: 28 }, { name: 'Kristin', alter: 31 }, { name: 'Obergine', alter: 39 }, { name: 'Hailey', alter: 44 }]; var alter = function(cand){ return cand.alter < 30; } var filter = cand.filter(alter); console.log(filter); 

filter()方法創建一個新數組,其中包含所有傳遞由提供的函數實現的測試的元素。

您需要傳遞參數作為所需的過濾功能。 您也可以使用帶箭頭功能的ES6濾鏡。

箭頭函數表達式具有比函數表達式更短的語法,並且不綁定它自己的this,arguments,super或new.target。 這些函數表達式最適合非方法函數,不能用作構造函數。

 var cand = [{name: 'Kevin',alter: 19},{name: 'Walter',alter: 22},{name: 'Herbert',alter: 28},{name: 'Kristin',alter: 31},{name: 'Obergine',alter: 39},{name: 'Hailey',alter: 44}], alter = function(item){ return item.alter < 30; }, filter = cand.filter(alter); //using normal javascript console.log('Result Using normal filter javascript :-'+JSON.stringify(filter)); console.log('*************************'); //You can also you ES6 with arrow function let filter1 = cand.filter(obj=> {return obj.alter<30}); console.log(`Result Using arrow function :- ${JSON.stringify(filter1)}`); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM