js数组拼接、增加、删除、插入等操作
2018-11-09 本文已影响0人
苏码码
一、数组创建的方式:
var arr = [1,2,3]
var arr1 = new Array()
var arr2 = new Array(size) // size: 期望数组元素个数
var arr3 = new Array(element0,element1,...,elementn);
二、length: 获取数组长度
var arr = [1,2,3,4,5];
console.log(arr.length)
三、数组对象的部分方法
// 1、concat():数组的拼接
var arr1 = [8,6,9,3,2,7,5,1,4]
var arr2 = ['a','b','c']
var arr = arr1.concat(arr2);
console.log(arr) // [1, 2, 3, 4, "a", "b", "c"]
// 2、join():把数组中所有元素通过指定字符拼接成一个字符串
var str = arr1.join('-') //'-':指定连接字符
console.log(str) // 8-6-9-3-2-7-5-1-4
// 3、pop():删除数组的最后一个元素,并返回该值
var lastEle = arr2.pop();
console.log(lastEle) // c
// 4、shift():删除数组的第一个元素,并返回该值
var firstEle = arr2.shift();
console.log(firstEle) // a
// 5、push():向数组的末尾添加元素,并返回数组新的长度
var newLength = arr2.push('d')
console.log(newLength) // 4
// 6、reverse():将数组中的元素倒叙排列
var newArr = arr1.reverse();
console.log(newArr) // [4, 3, 2, 1]
console.log(arr1) // [4, 3, 2, 1]
// 7、sort():对数组元素进行排序 sort方法内传入指定规则的函数
// 升序
arr1.sort(function (x,y) {
return x-y
})
console.log(arr1); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
// 降序
arr1.sort(function (x, y){
return y-x
})
console.log(arr1); // [9, 8, 7, 6, 5, 4, 3, 2, 1]
// 8、slice(start,end):从数组中返回选定的元素,返回的是一个新的数组
// start:必填,当为正值时,从数组头部开始算起;当为负值时,从数组尾部开始算起;0:返回整个数组;
// end:非必填,规定从何处结束;如果为负数,从数组尾部开始算起;如果没有改参数,则切分的数组从数组的start到数组结束的所有元素;
var s = arr1.slice(3) // 只有start 则从数组中下标为3的位置开始取值(包含下标3的值)直到数组尾部
console.log(s) // [6, 5, 4, 3, 2, 1]
var se = arr1.slice(2,5) // 从数组中下标为2的位置开始取值,到下标为5(不包含下标为5的值)
console.log(se); // [7, 6, 5]
// 9、splice(index,howmany,item1...itemX):删除元素,并向数组中添加新的元素
// index: 必填,整数,规定添加或者删除元素的位置,使用负数则从数组尾部开始,0:从第首端开始
// howmany: 必填,要删除的项目数量;如果该值为0,则不会删除元素
// item1...itemX: 可选,向数组中添加的新元素
var arr3 = ['js','html','css','vue']
arr3.splice(1,0,'iOS') // 在数组下标为1的位置插入一个元素;并且不删除任何元素
console.log(arr3) // ["js", "iOS", "html", "css", "vue"]
arr3.splice(1,2) // 从数组中下标为1的元素开始删除两个元素
console.log(arr3) // ["js", "css", "vue"]
arr3.splice(1,1,'iOS','java','python') // 从数组中下标为1的位置删除1个元素,并且在该位置插入元素
console.log(arr3) // ["js", "iOS", "java", "python", "vue"]
// 10、indexOf() 获取某个元素在数组中的下标
console.log(arr3.indexOf('java')) // 2
// 11、获取某个下标的元素
console.log(arr3[3]) // python
// 12、forEach() 对数组进行循环遍历
var arr4 = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
arr4.forEach((item, index, a) => {
// 参数item: 数组中每一项的内容
// 参数index: 数组索引
// 参数a: 指的是数组本身
console.log(item + " " + index + " " + (a === arr4));
});
// 13、map() 函数映射,传一个指定的函数,返回执行该函数后返回的结果,组成一个新的数组
var arr5 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var newArr5 = arr5.map((item, index) => {
// 参数item: 数组中每一项的内容
// 参数index: 数组索引
return item * index;
});
console.log(newArr5);
// 14、filter() 过滤方法,参数:传递一个符合条件的函数,返回满足过滤条件的新数组
var fArr5 = arr5.filter((item, index) => {
// 参数item: 数组中每一项的内容
// 参数index: 数组索引
return item % 2 == 0;
});
console.log(fArr5);
// 15、every() 用来判断数组中的所有项是否都满足某一条件,都满足返回true,否则false
var isHave = arr5.every((item) => {
return item > 8;//判断数组中所有元素是否都大于8
})
console.log(isHave) // false
// 16、some() 判断数组中是否有满足某一条件的项,如果有返回true,否则false
var isHaveSome = arr5.some((item) => {
return item > 8 //判断数组中是否存在大于8的项
})
console.log(isHaveSome) // true
// 17、reduce() 从第一项开始到最后一项,迭代数组中所有项,根据函数内的逻辑,返回一个最终的值
var sum = arr5.reduce((first,second,index,a) => {
return first + second
})
console.log(sum) // 55
// 18、reduceRight() 和reduce()功能类似 只不过reduceRight()是从右开始向左迭代
var sum1 = arr5.reduceRight((first,second,index,a) => {
return first + second
},10) // 10 是一个计算基数,可以根据需求填写
console.log(sum1) //65