1.splice()
!注意:splice函数会改变原数组。
由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组
例子 1
在本例中,我们将创建一个新数组,并向其添加一个元素:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
arr.splice(2,0,"William")
document.write(arr + "<br />")
</script>
输出
George,John,Thomas,James,Adrew,Martin
George,John,William,Thomas,James,Adrew,Martin
例子 2
在本例中我们将删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
arr.splice(2,1,"William")
document.write(arr)
</script>
输出
George,John,Thomas,James,Adrew,Martin
George,John,William,James,Adrew,Martin
例子 3
在本例中我们将删除从 index 2 (“Thomas”) 开始的三个元素,并添加一个新元素 (“William”) 来替代被删除的元素:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
arr.splice(2,3,"William")
document.write(arr)
</script>
输出
George,John,Thomas,James,Adrew,Martin
George,John,William,Martin
2.slice()
slice方法返回从数组中选择的元素
!注意:这个函数和python一样可以使用负数的下标
3.find()
find方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
!注意:该方法会遍历数组中所有的值,包括未定义的值(undefined)
4.forEach()
方法对数组的每个(有效)元素执行一次给定的函数。
注意: 除了抛出异常以外,没有办法中止或跳出 forEach() 循环。就连return都不行。。。如果你需要中止或跳出循环,forEach() 方法不是应当使用的工具。
这些数组方法则可以对数组元素判断,以便确定是否需要继续遍历:
- every()
- some()
- find()
- findIndex()
数组扁平化(flatten)
function flatten(arr) {
// 1.定义一个要返回的数组
const result = [];
// 2.遍历,若是数组,迭代
arr.forEach(element => {
if (Array.isArray(element)) {
result.push(...flatten(element));
} else { // 3.若不是数组,push
result.push(element);
}
});
return result;
}
5.filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]
6.some()方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。
const array = [1, 2, 3, 4, 5];
// checks whether an element is even
const even = (element) => element % 2 === 0;
console.log(array.some(even));
// expected output: true