1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-25 11:12:21 +00:00

增加ES5中reduce方法对数组空位的处理

```js
[1,,2].reduce((x,y)=>{
  console.log(x,y)
  return x+y
})
// 输出
// 1 2
// 3
```
This commit is contained in:
isLishude 2017-12-06 09:32:15 +08:00 committed by GitHub
parent 7740f5d075
commit 48ccd23c17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -728,7 +728,7 @@ Array(3) // [, , ,]
ES5 对空位的处理,已经很不一致了,大多数情况下会忽略空位。 ES5 对空位的处理,已经很不一致了,大多数情况下会忽略空位。
- `forEach()`, `filter()`, `every()` 和`some()`都会跳过空位。 - `forEach()`, `filter()`, `reduce()`, `every()` 和`some()`都会跳过空位。
- `map()`会跳过空位,但会保留这个值 - `map()`会跳过空位,但会保留这个值
- `join()``toString()`会将空位视为`undefined`,而`undefined``null`会被处理成空字符串。 - `join()``toString()`会将空位视为`undefined`,而`undefined``null`会被处理成空字符串。
@ -742,6 +742,9 @@ ES5 对空位的处理,已经很不一致了,大多数情况下会忽略空
// every方法 // every方法
[,'a'].every(x => x==='a') // true [,'a'].every(x => x==='a') // true
// reduce方法
[1,,2].reduce((x,y) => return x+y) // 3
// some方法 // some方法
[,'a'].some(x => x !== 'a') // false [,'a'].some(x => x !== 'a') // false