使用map函数转换数组

假设我们已经通过某种方式过滤了SCRIPTS数组,生成一个用于表示脚本的信息数组。但我们想创建一个包含名称的数组,因为这样更加易于检查。

map方法对数组中的每个元素调用函数,然后利用返回值来构建一个新的数组,实现转换数组的操作。新建数组的长度与输入的数组一致,但其中的内容却通过对每个元素调用的函数“映射”成新的形式。

  1. function map(array, transform) {
  2. let mapped = [];
  3. for (let element of array) {
  4. mapped.push(transform(element));
  5. }
  6. return mapped;
  7. }
  8. let rtlScripts = SCRIPTS.filter(s => s.direction == "rtl");
  9. console.log(map(rtlScripts, s => s.name));
  10. // → ["Adlam", "Arabic", "Imperial Aramaic", …]

forEachfilter一样,map也是标准的数组方法。