【问题标题】:Return an Array of Abbreviated Strings with .filter() - JavaScript使用 .filter() 返回一个缩写字符串数组 - JavaScript
【发布时间】:2017-12-03 14:14:11
【问题描述】:

如果我有一个字符串数组,我想用 filter() 方法缩写。

如何将 filter() 与 str.substring(或其他字符串方法,如果适用)结合使用?

在下面的代码中,我想返回每个名称的前四个字符,但它似乎不起作用。

JavaScript

let poshNames = ["Markol", "Andile", "Jazzmine", "Famisynth"];
let nickNames;

nickNames = poshNames.filter(function(name){

  return name.str.substring(0,4);

});

【问题讨论】:

标签: javascript string filter substring


【解决方案1】:

你应该使用map:

const poshNames = ["Markol", "Andile", "Jazzmine", "Famisynth", "H"];
const nickNames = poshNames.map(name => name.substring(0,4));

console.log(nickNames);

【讨论】:

  • 您链接的资源是关于Map 构造函数,而不是Array.prototype.map
  • 不客气@GrégoryBourgin。顺便说一句,你给出了一个可靠的答案。你赢得了我的一票!
【解决方案2】:

使用map 而不是filter 它会起作用的:

let poshNames = ["Markol", "Andile", "Jazzmine", "Famisynth"];
let nickNames;

nickNames = poshNames.map(function(name) {
  return name.substring(0,4);
});

filter 所做的实际上是返回一个数组,该数组包含数组中函数返回true 的每个元素。

另一方面,map 所做的是返回一个数组,其中包含函数为数组中的每个值返回的值。

注意:这两种方法都返回一个新数组而不影响原始数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2017-10-09
    • 2011-04-21
    • 1970-01-01
    • 2012-12-14
    相关资源
    最近更新 更多