数据类型
ECMAScript中有5中简单数据类型(也称为基本数据类型): Undefined、Null、Boolean、Number、String
。
还有1中复杂的数据类型————Object
,Object本质上是由一组无序的名值对组成的。其中Undefined、Null、Boolean、Number都属于基本类型。Object、Array和Function则属于引用类型
1.push() 数组尾部添加
var a=[1,2,3];a.push(5);a//[1, 2, 3, 5]
2.unshift() 数组头部添加
var a=[1,2,3];a.unshift(5);a//[5,1, 2, 3]
3.pop() 数组尾部删除
var a=[1,2,3];a.pop();a//[1, 2]
4.shift() 数组头部删除
var a=[1,2,3];a.shift();a//[2,3]
5. splice() 向/从数组中添加/删除项目,然后返回被删除的项目
splice(num)
//num>=0时
var a=[1,2,3,5];a.splice(0);a//[]
var a=[1,2,3,5];a.splice(1);a//[1]
var a=[1,2,3,5];a.splice(4);a//[1,2,3,5]
var a=[1,2,3,5];a.splice(5);a//[1,2,3,5]
//num<0时
var a=[1,2,3,5];a.splice(-1);a//[1,2,3]
var a=[1,2,3,5];a.splice(-4);a//[]
splice(index,num) 对数组 删除
index表示索引,num表示 删除的项的数量
var a=[1,2,3,5];a.splice(0,0);a;//[1, 2, 3, 5]
var a=[1,2,3,5];a.splice(0,2);a;//[3, 5]
splice(index,num,item1,…,itemX)
index 表示 插入的位置 若是index为正,表示从左往右插入,若index为负,表示从右往左插入
num num>0,表示先从index开始删除num个项,然后再把后面的项从index插入,如果num为 0,则直接在index处插入
item 表示向数组添加的新项目
var a=[1,2,3,5];a.splice(0,0,8,9);a//[8,9,1,2,3,5]
var a=[1,2,3,5];a.splice(0,1,8,9);a//[8,9,2,3,5]
6.concat() 数组拼接
var a=[1,2,3,5];var b=a.concat([8,9]);b// [1, 2, 3, 5, 8, 9]
7.join() 数组拼接为字符串
join() 默认用逗号
分开,也可以用其他的字符串拼接
var a=[1,2,3,5];var b=a.join();b//"1,2,3,5"
var a=[1,2,3,5];var b=a.join('_');b//"1_2_3_5"
8.sort() 数组排序
sort()默认升序排序
var a=[1,6,3,5];var b=a.sort();b //[1, 3, 5, 6]
sort()也可降序排序
var a=[1,6,3,5];var b=a.sort(function(a,b){return b-a});b//[6, 5, 3, 1]
9.reverse() 数组颠倒排序
reverse只是改变原有数组的顺序,不对数组进行降序或升序
var a=[1,6,3,5];var b=a.reverse();b //[5, 3, 6, 1]
10.indexOf() lastIndexOf() 查找
indexOf()查找元素第一次出现的位置,返回索引
var a=[1,6,3,5,3,4];var b=a.indexOf(3);b//2
lastIndexOf()查找元素最后一次出现的位置,返回索引
var a=[1,6,3,5,3,4];var b=a.lastIndexOf(3);b//4
12.filter() 过滤
filter() 方法返回数组中满足条件的元素组成的新数组,原数组不变
var a = [1, 2, 3, 4, 11];var b=a.filter((e,index)=>e>2);b//[3, 4, 11]
13.map() 格式化数组
map() 方法来根据需求格式化原数组,返回格式化后的数组。原数组不变
var a = [1, 2, 3, 4, 11];var b=a.map(e=>e>2);b;//[false, false, true, true, true]
var a = [1, 2, 3, 4, 11];var b=a.map(e=>e+1);b;//[2, 3, 4, 5, 12]
对数组进行遍历筛选,返回一个新的数组
var a = [{id:1,value:'z'},{id:2,value:'h'},{id:3,value:'q'}];
var b=a.map(function(item){return{ids:item.id,label:item.value}});b
//[{ids: 1, label: "z"},{ids: 2, label: "h"},{ids: 3, label: "q"}]
14.every()
对数组的每一项都运行给定的函数,若每一项都返回 ture, 则返回 true
var a = [1, 2, 3, 4, 5]
var b = a.every(function (current, index, array) {
return current < 6
})
var c = a.every(function (current, index, array) {
return current < 3
})
console.log(b) // true
console.log(c) // false
15.some()
对数组的每一项都运行给定的函数,若存在一项或多项返回 ture, 则返回 true
var a = [1, 2, 3, 4, 5]
var b = a.some(function (current, index, array) {
return current > 4
})
var c = a.some(function (current, index, array) {
return current > 5
})
console.log(b) // true
console.log(c) // false
16.forEach() 数组遍历
不符合条件的直接跳过
var a = [1, 2, 3, 4, 11];
var b=a.forEach(function(item){if(item==3){return}console.log(item)});
//1 2 4 11
将符合条件的项放入到新数组中
var a = [1, 2, 3, 4, 11];var b=[];
a.forEach(function(item){if(item==3){return}b.push(item)});b;//[1, 2, 4, 11]