Javascript操作数组
目录
- 一、数组方法
- 1.join() 数组 => 字符串
- 2.push() 数组末尾添加元素,并且返回长度
- 3.pop() 删除数组的最后一个元素并返回删除的元素。
- 4.shift() 删除数组的d第一个元素并返回删除的元素。
- 5.unshift() 数组头部添加元素,并且返回长度
- 6.sort() 数组排序
- 7.reverse() 翻转整个数组并且改变原数组
- 8.concat() 合并数组(不改变原数组并返回新的数组)
- 9.slice() 截取数组(不改变原数组并返回新的数组)
- 10.splice() 删除数组元素
- 11.indexOf() lastIndexOf() 查找数组元素
- 12.forEach()
- 13.map() 返回一个新数组 为原始数组元素`调用函数处理`后的值
- 14.filter() 返回一个新数组 为满足`过滤条件`的值
- 15.every() 返回一个布尔值 所以项满足才为`true`,否则`false`
- 16.some() 返回一个布尔值 有一项满足就为`true`,否则`false`
- 17.includes() 返回一个布尔值 一个数组是否包含一个指定的值
- 18.reduce() 迭代数组的所有项,构建一个`最终返回`的值
- 19.flat() 和 flatMap() es6 新增
HTML 指的是超文本标记语言 (Hyper Text Markup Language)是用来描述网页的一种标记语言,而不是编程语言。
一、数组方法
1.join() 数组 => 字符串
对应字符串=>数组 split()
var arr = [1,2,3];
console.log(arr.join("-")); // 1-2-3
2.push() 数组末尾添加元素,并且返回长度
3.pop() 删除数组的最后一个元素并返回删除的元素。
var arr = [1,2,3];
console.log(arr.pop()); // 3
4.shift() 删除数组的d第一个元素并返回删除的元素。
var arr = [1,2,3];
console.log(arr.shift()); // 1
5.unshift() 数组头部添加元素,并且返回长度
var arr = [1,2,3];
console.log(arr.shift()); // 1
6.sort() 数组排序
接收一个比较函数作为参数,函数接收两个值。比较函数返回值来决定数组的排序。
返回-1
参数1位于参数2前面;返回0
不变;返回1
参数1位于参数2后面。
var arr = [8798,77,6,2,3,1];
arr.sort(function(pre,next) {
// 正序 [1, 2, 3, 6, 77, 8798]
return pre < next ? -1 : pre > next ? 1 : 0;
// 倒序 [8798, 77, 6, 3, 2, 1]
return pre < next ? 1 : pre > next ? -1 : 0;
})
7.reverse() 翻转整个数组并且改变原数组
var arr = [8798,77,6,2,3,1];
arr.reverse() // [1, 2, 3, 6, 77, 8798]
8.concat() 合并数组(不改变原数组并返回新的数组)
var arr = [8798, 77, 6, 2, 3, 1];
var newarr = arr.concat([
1, 9
])
// [8798, 77, 6, 2, 3, 1, 1, 9]
9.slice() 截取数组(不改变原数组并返回新的数组)
var arr = [8798,77,6,2,3,1];
arr.slice(从哪里开始,到哪里结束) 不包括结束项
arr.slice(0,2)
负数则从数组末尾开始 -1是最后一项
// [8798, 77]
10.splice() 删除数组元素
var arr = [8798,77,6,2,3,1];
arr.splice(从哪里开始,删除几项,是否插入其他元素)
arr.splice(0,2)
负数则从数组末尾开始 -1是最后一项
// [8798, 77]
11.indexOf() lastIndexOf() 查找数组元素
var arr = [8798,77,6,2,3,1,77];
arr.indexOf(77)// 1 头部开始查找
arr.lastIndexOf(77)// 6 末尾开始查找
// 没找到则返回-1
12.forEach()
var arr = [8798,77,6,2,3,1,77];
arr.forEach(function(item,i) {
})
13.map() 返回一个新数组 为原始数组元素调用函数处理
后的值
var arr = [8798,77,6,2,3,1,77];
var arr_new = arr.map(function(item) {
return item * 2
})
// arr_new => [17596, 154, 12, 4, 6, 2, 154]
14.filter() 返回一个新数组 为满足过滤条件
的值
var arr = [8798,77,6,2,3,1,77];
var arr_new = arr.filter(function(item) {
return item % 3 == 0
})
// arr_new => [6, 3]
15.every() 返回一个布尔值 所以项满足才为true
,否则false
16.some() 返回一个布尔值 有一项满足就为true
,否则false
17.includes() 返回一个布尔值 一个数组是否包含一个指定的值
18.reduce() 迭代数组的所有项,构建一个最终返回
的值
reduce接收两个参数,
函数
和参数
,第二个参数有的话则以第二个参数开始计算
var arr = [1, 2, 3, 4];
var arr_new = arr.reduce((pre, cur) => {
return pre + cur;
}, 90);
// 90 作为第二个参数
console.log(arr_new, 'total')
// total => 100
19.flat() 和 flatMap() es6 新增
深度递归