这可以在不改变阵列的情况下完成吗?
let arr = [1, 2, 3, 4, 5];
arr.shift() // works but mutates the array
arr.forEach(function(value) {
console.log(value)
});
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
虽然array.slice(1).forEach(...)很优雅,但它确实创建了一个新数组。forEach您可以通过检查传递给(数组索引)的第二个属性是0, 还是“falsy”来避免这样做。如果您传递的函数恰好只执行单个表达式,您可以缩短语句:
if (i) expression()到i && expression()
...这使得这个方法异常简洁。
let array = [1, 2, 3, 4, 5]
array.forEach(function (value, i) {
if (i) console.log(value)
})
array.forEach(function (value, i) {
i && console.log(value)
})Run Code Online (Sandbox Code Playgroud)
您可以使用Array#slice没有第一个元素的副本.
let arr = [1, 2, 3, 4, 5];
arr.slice(1).forEach(function(value) {
console.log(value);
});Run Code Online (Sandbox Code Playgroud)
使用index在forEach:
let arr = [1, 2, 3, 4, 5];
arr.forEach(function(value, index) {
if ( index != 0 ) {console.log(value) }
});Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |