【发布时间】:2019-09-08 06:37:33
【问题描述】:
如果你运行下面的代码snipper,for循环的结果和函数式filter().map()方法的结果是不一样的。
如果我的方法完全错误,我在函数式方法上做错了什么?该 for 循环的函数式方法是什么?
var data_obj_arr = [{"Size": "<1000", "Type": "Detached", "Location": "Northern", "Configuration": "Downflow", "Age": "Built Before 1980", "Collection_Name": "test"}, {"Size": "<1000", "Type": "Detached", "Location": "Northern", "Configuration": "Downflow", "Age": "Built Before 1980", "Collection_Name": "test"}, {"Size": "<1000", "Type": "Detached", "Location": "Northern", "Configuration": "Downflow", "Age": "Built Before 1980", "Collection_Name": "test"}]
function updateChosenOption(category_choice, category) {
var arr = [];
for (let i in data_obj_arr) {
if (data_obj_arr[i][category] === category_choice) {
arr.push(data_obj_arr[i]["Collection_Name"]);
}
}
console.log(`Array: ${arr}`);
var results = data_obj_arr.filter((el => el[this.curr_category] === category_choice), {curr_category: category} )
.map(el => el["Collection_Name"]);
console.log(`Results: ${results}`);
}
updateChosenOption('Built Before 1980','Age')
【问题讨论】:
标签: javascript arrays object for-loop functional-programming