我正在尝试创建一个长度大于零的所有字符串数组。
let sampleArray2:string[] = ["hello","world","angular","typescript"];
let subArray:string[] = sampleArray2
.map(() => sampleArray2
.find(val => val.length > 5)
);
console.log(subArray);
正如预期的那样,它正在返回[ 'angular', 'angular', 'angular', 'angular' ]
我想要它打印[ 'angular', 'typescript' ]
我特意寻找一种同时使用map和find来实现此目的的解决方案。我该如何解决这个问题?
注意:虽然filter
是一个简单的解决方案,但我正在尝试查看map和find是否可以一起使用以获得所需的输出。
答案 0 :(得分:0)
let subArray:string[] = sampleArray2.filter(i => i.length > 5);
答案 1 :(得分:0)
.find
不是您想要的 - 您需要.filter.
答案 2 :(得分:0)
问题是你的map()会返回' angular' 5次。
使用过滤器的正确语法(因此保留您的类型)应该是:
let subArray:string[]= sampleArray2.filter(val=>val.length>5)
答案 3 :(得分:0)
您不需要功能map
,也不需要功能find
。
使用函数filter
。
let sampleArray2 = ["hello", "world", "angular", "typescript"];
let subArray = sampleArray2.filter(val => val.length > 5);
console.log(subArray);