首页 > 解决方案 > JS:箭头函数还是数组映射?

问题描述

基于这段代码,我想使用箭头函数,我不太习惯.. 最好的写法是什么?

我想保持相同的排序顺序。由于“selectedHeader”就像你可以猜到的那样,一个基于vue js v-select的列变量。

const headers = 
  [ { text: 'City',                  value: 'city'   } 
  , { text: 'Zip code',              value: 'zip'    } 
  , { text: 'Country',               value: 'country'} 
  , { text: 'Number of Inhabitants', value: 'inhabitants' } 
  ];

const selectedHeaders = 
  [ { text: 'City',     value: 'city' } 
  , { text: 'Zip code', value: 'zip'  } 
  ];
  
let tab = [];

for (i = 0; i < headers.length; i++) {
  pos = selectedHeaders.map(function(e) {
    return e.value;
  }).indexOf(headers[i].value);
  if (pos > -1) {
    tab.push(headers[i]);
  }
}

console.log(tab);

标签: javascriptrefactoringarrow-functions

解决方案


如果要使用箭头功能,可以使用过滤器

    const headers = [ { "text": "City", "value": "city" }, { "text": "Zip code", "value": "zip" },{ "text": "Country", "value": "country" },{ "text": "Number of Inhabitants", "value": "inhabitants" }];
    const selectedHeaders = [ { "text": "City", "value": "city" }, { "text": "Zip code", "value": "zip" }];
    let tab =[];
    
    const selectedValues = selectedHeaders.map(header => header.value);
    tab = headers.filter(header => selectedValues.includes(header.value));
    console.log(tab);

推荐阅读