数组array-API
var arr = [1,2,3,4]
var arr1 = [5,6,7,8]
- concat 数组合并,并不会修改源数组,而是得到一个新的数组
var arr2 = arr.concat(arr1, [10,10,10])
console.log(arr, arr1)
console.log(arr2)
- join以指定字符来把数组每个元素拼接成一个字符串
var str = arr.join('-')
console.log(str)
- push 在arr的末尾追加一个或多个值,修改的是arr本身,push方法的返回值是新的长度
// var len = arr.push(20, 40)
var len = arr.push(20)
console.log(arr)
console.log(len) // 5
- pop 把arr的最后一个元素删掉,修改的也是源数组,pop方法的返回值是被删掉的那个元素
var num = arr.pop()
console.log(arr)
console.log(num)
- shift在开头删除,unshift在开头追加
- reverse数组元素反转,修改的是源数组
arr.reverse()
console.log(arr)
- arr当中按照指定的索引截取子数组,索引含头不含尾的,不会修改源数组,而是返回一个新数组
var arr3 = arr.slice(1,3) // 截图到的是索引1和2,不包含3
console.log(arr3)
var arr4 = arr.slice(2) // slice方法只传一个参数,意思就是截取到末尾
console.log(arr4)
var arr5 = arr.slice(-2, -1) // slice传递负数,负数代表到数第几个
console.log(arr5)
var arr6 = arr.slice(1, -2) // 从2开始,截取到倒数第二个结束,不包含到数第二个
console.log(arr6)
- splice修改的是源数组
var arr = [4,3,5,6,7,8]
// 把从2开始的数据删掉
arr.splice(2)
console.log(arr)
// 从2开始,删除3个数,删除元素里包含开始索引的
arr.splice(2,3)
console.log(arr)
// 从2开始,删除两个数,然后在删除位置用10去替换
arr.splice(2, 2, 10)
console.log(arr)
// 从第三个参数开始后面可以传任意多个参数,都是替换的值
arr.splice(2, 2, 10, 20, 30)
console.log(arr)
// 可以把第二个参数写成0,就是添加,可以在任意位置添加元素
arr.splice(6, 0, 20)
console.log(arr)
ES5-API
-
2个索引方法:indexOf() 和 lastIndexOf();
-
5个迭代方法:forEach()、map()、filter()、some()、every();
-
2个归并方法:reduce()、reduceRight();
<script>
var arr = [4,2,2,4,6]
// 从arr当中去找2的索引,如果数组里有多个2,得到的是第一次出现的索引
console.log(arr.indexOf(2)) // 1
console.log(arr.indexOf(10)) // -1 如果值不存在,那么得到-1
// 判断数组里是否存在某个值,就用indexOf判断结果是否等于-1
// 从arr当中去找2的索引,如果数组里有多个2,得到的是最后一次出现的索引
console.log(arr.lastIndexOf(2))
console.log(arr.lastIndexOf(10)) // -1 如果值不存在,那么得到-1
</script>
- ES5新增的一种遍历数组的方式
arr.forEach(function (item, index) {
// item是值,index是索引
console.log(item, index)
})
- map也是用来遍历数组,遍历的同时需要给一个返回值,所有的返回值会放进一个新的数组
var arr1 = arr.map(function (item ,index) {
// item是值,index是索引
console.log(item, index)
return item*2
})
console.log(arr1)