[英]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.