Kri*_*mal 3 javascript arrays ecmascript-6
if块正在正常执行.代码有什么问题?
let arr = [4, -4, 5.8, 1.6];
let newA = arr.filter((x) => {
if (x > 0 && Number.isInteger(x)) {
return x * x;
}
})
console.log(newA);Run Code Online (Sandbox Code Playgroud)
预期产出
[16]
Run Code Online (Sandbox Code Playgroud)
实际产量:
[4]
Run Code Online (Sandbox Code Playgroud)
为什么?
给定的代码执行过滤部分,因为任何二次正整数都是真值,但它不会返回新值.
看起来,您需要两个操作,一个过滤并更改过滤后的值.
在这种情况下,您需要Array#filter获得正整数和Array#map二次值.
let array = [4, -4, 5.8, 1.6],
result = array
.filter(x => x > 0 && Number.isInteger(x))
.map(x => x * x);
console.log(result);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |