数组方法
1. join (不改变原数组)
该方法可以将数组里的元素,通过指定的分隔符,以字符串的形式连接起来。
返回值:返回一个新的字符串
//将数组用 - 符号连接起来
let arr = [1,2,3];
let str = arr.join('-');
console.log(str)//str = 1-2-3;
2. spilt (不改变原数组)
该方法是用过指定的分隔符,将字符串分割成数组。
返回值:返回一个新的数组
let str = sd-ys;
let arr = str.split('-');
console.log(arr);// arr=['sd','ys'];
数组的增删操作 (直接改变原数组)
增
3. push()
该方法可以在数组 尾部,添加一个或者多个元素
使用:arr.push(值)
返回值 : 返回的是添加元素后数组的长度
4. unshift()
该方法可以在数组 首部,添加一个或者多个元素
使用:arr.unshift(值)
返回值 : 返回的是添加元素后数组的长度
删
5. pop()
该方法可以在数组的 最后面,删除一个元素
使用
:arr.pop()
返回值:返回的是刚才删除的元素
6. shift()
该方法可以在数组的 最前面,删除一个元素 使用
: arr.shift()
返回值: 返回的是刚才删除的元素
数组的翻转,去重和排序 (改变原数组)
7. arr.reverse() 翻转数组
8. sort() 排序
arr.sort(function(a,b){
return a-b;//从小到大排序
return b-a;//从大到小排序
})
9. let newArr =[...new Set(arr)]; 去重
let newArr = [...new Set(arr.map(v=>JSON.stringify(v)))].map(s=>JSON.parse(s)) 对象去重
根据数组对象里的id去重
const map = new Map();
const newArr = arrObj.filter(v => !map.has(v.id) && map.set(v.id, v))
数组的拼接与截取 (不改变原数组)
10. concat()
该方法可以把两个数组 拼接 成一个新的数组
返回值: 返回拼接后的新数组
let arr1 = [1,2,3];
let arr2 = [4,5,6];
let arr = arr1.concat(arr2);//arr = [1,2,3,4,5,6];
arr1.push(arr2);//arr1 = [1,2,3,[4,5,6]];
11. slice()
该方法可以从数组中 截取 指定的字段,返回出来
返回值:返回截取出来的字段,放到新的数组中,不改变原数组
方法1: arr.slice(start,end); 从start下标开始截取,一直到end结束,不包括end
let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice(2,5) // 2 <= 范围 < 5
console.log(newArr) //newArr = [2,3,4];
方法2: arr.slice(start); 从start下标开始截取,一直到最后 (同 substr)
let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice(2)//newArr = [2,3,4,5,6,7];
方法3: arr.slice( ) ;全部截取
let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice()//newArr = [0,1,2,3,4,5,6,7];
删除或增加元素(任意在任何位置,直接改变原数组,没有返回值)
12. arr.splice(起始下标,删除数量,...插入元素)
方法1 (纯删除): arr.splice(start,deletedCount)
从start下标开始,删除几个
方法2 (替换): arr.splice(start,deletedCount,item)
从start下标开始,删除几个,并在该位置添加item
方法3 (纯添加):arr.splice(start,0,item)
从start下标开始,删除0个,并在该位置添加item,start开始全部往后移动
let arr = [1,2,6,7,8];
arr.splice(2,0,3,4,5);//arr = [1,2,3,4,5,6,7,8];
查找元素在数组中出现的位置 或 是否包含
13. .includes()
includes()方法是检验数组中是否包含元素,包含返回true,否返回false
const arr = ["和", "光", "同", "尘"].includes("光")
console.log(arr);//返回true
14. indexOf()
用法:arr.indexOf(元素)
特殊用法: arr.indexOf (元素,fromIndex), 从fromIndex这个下标开始,元素第一次出现的位置
if (arr.indexOf(元素) === -1){。//说明元素不存在!!
console.log('元素不存在!)
} else {
console.log(' 元素存在! ')
}
15. lastIndexOf
该方法用来查找元素最后一次在数组中出现的位置.
使用:arr.lastIndexOf(元素)
遍历数组的方法
1. forEach( )
该方法等同于for循环,没有返回值
功能:用于调用数组的每个元素,并将元素传递给回调函数。
该方法的第一个参数为回调函数,他有三个参数:
item: 必须。当前元素的值
index :可选。当前元素的索引值
arr :可选。当前元素属于的数组对象
用法:
let arr = [1,2,3,4,5]
arr.forEach((item, index, arr) => {
console.log(index+":"+item)
})
2. map()
映射, 不改变原数组,有返回值,会返回新数组,数组中的元素为原始数组元素调用函数处理后的值。 也是三个参数 同forEach
注意: map() 不会对空数组进行检测,它会返回一个新数组,不会改变原始数组。
let arr = [1, 2, 3];
arr.map(item => { return item+1;})// 返回值: [2, 3, 4]
该方法可以进行链式调用:
let arr = [1, 2, 3];
arr.map(item => item+1).map(item => item+1)// 返回值: [3, 4, 5]
3. filter( )
有返回值, 过滤出符合条件的元素,满足条件的元素会被返回,不改变原数组
let arr = [1, 3, 5, 2, 4, 6];
let res3 = arr.filter((item, index) =>{
return item % 2 === 0;
});
console.log(res3); // 2,4,6
4. some() (一真则真)
有返回值,不改变原数组
功能:如果有一个元素符合条件 ,返回true
let arr = [1, 2, 3, 4, 5]
arr.some(item => item > 3)
// 结果: true
5. every() (一假则假)
有返回值,不改变原数组
功能:如果每个元素都符合条件返回true,否则返回false
6. find()
有返回值,不改变原数组
功能:返回符合条件的第一个元素
- 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
- 如果没有符合条件的元素返回 undefined
7. findIndex()
功能:返回第一个符合条件的元素下标
- 当数组中的元素在函数条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
- 如果没有符合条件的元素返回 -1
8. reduce()
加初始值,可改变原数组,有返回值,返回值是数组的和
功能:按数组下标升序对数组元素求和
reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接 受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。
注意,该方法如果添加初始值,就会改变原数组,将这个初始值放在数组的最后一位。
var arr = [1, 2, 3, 4]
var sum = arr.reduce((prev, cur, index, arr) => {
console.log(prev, cur, index);
return prev + cur;
}) //可以这这里设置初始值 },5)
console.log(arr, sum); //[1, 2, 3, 4], 10
拓展记录
JSON.parse(JSON.stringify(obj))
str.trim() 去除字符串左右俩边空格
padStart(2,"0") 用于头部补全
str.startWith("hh") 判断是否以什么开头
endWith() 判断是否以什么结尾
Array.isArray(数组对象) 是数组返回true
parseInt(number) 取整数
parseFloat(number) 取代小组数点
toFixed(number) 取小数点后几位数
Math.ceil(Math.random() * 100 + 1)
以上是数组的方法,对象的方法在Object.keys()方法及拓展(es6中对象新增的方法)_object.keys(e).includes('target')_Leslie21.的博客-CSDN博客
暂时这些吧 有遗漏或者技术更新了 再来补充.