js中数组的内置函数(api)
1. 数组中的api
-
isArray
判断一个对象是否为数组
返回结果是一个布尔值
-
concat()
合并数组
返回值是一个新的数组, 对原来的数组没有影响
-
unshift()
**在数组的前面添加 **
直接对原数组修改
-
push()
在数组后面添加
直接改变原数组
-
shift()
删除数组第一个
改变原来的数组, 返回值是删除的项
-
pop()
删除数组的最后一个
改变原来的数组, 返回值是删除的项
-
toString()
将数组转为字符串
不会改变原数组, 括号内不可传参数
-
join()
将数组转为字符串
不会改变原数组,括号内可以传参数, 传的参数表示每两项之间用什么隔开
-
reverse( )
反转数组
返回的是反转之后数组 会改变原数组
-
indexOf()
获取指定元素在数组中的索引位置
如果改元素不存在返回-1, 如果改元素存在返回第一次出现的索引位置.
-
lastIndexOf()
从后往前查找首个元素出现的位置
-
slice()
截取
返回的是截取下来的数组,
不影响原数组
, 参数是数组的索引例: (3,5) 表示截取从索引
3
开始到索引4
的元素注意: 如果括号内只有一个值, 表示截取从该索引之后的所有元素
-
splice()
删除数组中的某些项
返回的是删除的数组,
会改变原来的数组
参数一: 开始删除的索引位置
参数二: 要删除几个 如果没有值就默认删除参一索引后的所有, 如果是0不删除
参数三及以后: 从删除的位置开始,往后添加新的项
-
delete()
删除某个
会保留原有的位置, 数组的长度不会改变
-
filter()
数组过滤器
过滤数据, 返回满足过滤条件的新数组
例:
var arr = [12,45,5,78,2,42,85,2,52,98];
var res = arr.filter((item,index)=>{
return item>13
})
console.log(res); // 由大于13的元素组成的新数组
-
forEach
循环遍历数组
arr.forEach((item,i)=>{
console.log(item); // 数组中的每一项
console.log(i); // 索引
})
-
fill()
替换元素
会改变原数组
var arr = [11,22,66,88];
var fillArr = arr.fill(100)
console.log(arr); // 100 100 100 100 改变原数组
console.log(fillArr); // 100 100 100 100
// 把数组中索引为 1--2 的元素 替换为 10
console.log(fillArr.fill(10,1,3)); // 替换元素包头不包尾
-
sort()
数组排序
sort 如果不写参数, 就按照元素的第一位的ASCII大小排序
var arr = [11,22,47,21,2,66,88];
var arr2 = arr.sort((a,b)=>{
return a - b // 正序 从小到大排
})
console.log(arr2);
var arr3 = arr.sort((a,b)=>{
return b - a // 倒序 从大到小排
})
console.log(arr3);
-
some()
测数组中是否有满足指定条件的元素
返回结果为布尔值
var arr = [11,22,47,21,2,66,88];
var arr2 = arr.some((item)=>{
return item > 10
})
console.log(arr2); // true
-
map()
数组按照要求修改
不影响原数组,遍历数组,映射关系
var arr = [11,22,47,21,2,66,88];
var arr2 = arr.map(item=>{
return item + 1 // 数组中所以的元素都加了 1
})
console.log(arr2);
-
includes()
判断数组中是否包含指定的元素
返回值是一个布尔值
参一: 数组中的元素
参二: 从索引为几的地方开始往后查找
var arr = [11,22,47,21,2,66,88];
var b = 2;
console.log(arr.includes(b)); // true
console.log(arr.includes(555)); // false
// 也可以写多个参数
// 注意, 参二表示从索引为几的地方开始往后查找!!!!! 不表示索引值
console.log(arr.includes(b,2)); // true
console.log(arr.includes(b,1)); // true
-
find()
返回数组中第一个通过测试的元素
如果满足条件返回第一个满足的
如果不满足返回 undefined
var arr = [11,22,47,21,2,66,88];
var arr2 = arr.find(item=>{
return item>22
})
console.log(arr2); // 47
- 22.
reduce()
和map与forEach一样可以用来遍历数组
https://www.cnblogs.com/Tohold/p/10430729.html
let arr = [1,2,3,4,5]
let arr2 = arr.reduce((prev,next,index)=> {
return prev + next
},0) // 因为 prev 第一次没有值 所以给个默认值为0 如果不给默认值索引从1开始
console.log(arr2); // 15
2.对象的方法api
-
hasOwnProperty
用于查看对象中是否有该属性
不会去原型上查找, 且参数必须是字符串形式的!!!
const obj = {
'name': 'ztp',
'age': 22,
'set': '男',
aaa() {
}
}
console.log(obj.hasOwnProperty("name")); // true
console.log(obj.hasOwnProperty("aaa")); // true
console.log(obj.hasOwnProperty("bbb")); // false
-
Object.assign({},obj1,obj2)
用于合并对象
参一可以是一个变量提前声明好的对象
-
Object.keys(对象)
把对象的key值转变为数组
4.Object.values(对象)
把对象的value转为数组