/**
* 第一组: 关于数组的增加、删除、修改
* 1、push 向数组的末尾添加新的内容 返回添加后新数组最终的长度 原有数组改变
* 2、unshift 向数组开头增加新的内容 返回的也是增加后的数组长度 原有数组改变
* 3、splice(n,0,x) 向数组中间添加新的内容 从索引n开始删除0个,把新增加的内容放在索引n的前面 返回的是空数组 原有数组改变
* splice(n,m) 删除数组中指定的某些项 从索引n(包含n)开始,删除m个元素 返回一个新的数组是由删除的内容组成 原有数组改变
* splice(n,m,x) 把原有数组中的某些项进行替换(先删除,然后用x替换) 从索引n开始删除m个元素,用x替换原来的,返回的是删除的元素
* 规律:splice(0,0,x) 相当于 unshift
* splice(ary.length,0,x) 相当于 push
* 4、pop 删除数组最后一个 返回的是删除的那一项 原有数组改变
* 5、shift 删除数组开头一个 返回的是删除的那一项 原有数组改变
*/
//push向数组的末尾添加新的内容
var res = ary.push(16,10);
console.log(res);
// unshift向数组开头增加新的内容
var res = ary.unshift(16,10);
console.log(res);
// splice(n,0,x)
var res = ary.splice(2,0,"gold");
console.log(res);
console.log(ary) //[10, 12, "gold", 13, 11, 19, 17]
//splice(n,m)
var reg = ary.splice(2,3);
console.log(ary); //[10, 12, 17]
console.log(reg); //[13, 11, 19]
//splice(n,m,x)
var reg = ary.splice(2,3,13);
console.log(ary); //[10, 12, 13, 17]
console.log(reg); //[13, 11, 19]
/**
*第二组: 数组的查询和复制
* 6、slice(n,m) 从索引n开始(包含n),找到索引 m 处(不包含m)然后把找到的内容作为一个新的数组返回 原有数组不改变
* slice(n) 从索引n开始(包含n),查找到数组的末尾,然后把找到的内容作为一个新的数组返回, 原有数组不改变
* slice(0) == slice() 将原有数组原封不动的复制一份
* 7、concat 数组的克隆 原有数组不改变 == slice() == slice(0)
* 本意是实现数组的拼接 原有的数组不改变
*/
//slice(n,m);
var res = ary.slice(2,3);
console.info(ary); //[10, 12, 13, 11, 19, 17]
console.info(res); //[13]
//concat复制
var res = ary.concat();
console.info(res); //[10, 12, 13, 11, 19, 17]
console.info(ary); //[10, 12, 13, 11, 19, 17]
//拼接
var ary1 = ["gold","13"];
var ary2 = [1,3,4,5];
var res = ary1.concat(ary2);
console.log(res); //["gold", "13", 1, 3, 4, 5]
/**
* 第三组:将数组转化为字符串
* 8、toString 把数组中的每一项用逗号隔开 原有数组不改变
* 9、join 把数组中的每一项用指定符号隔开 原有数组不改变
*/
//toString
var res = ary.toString();
console.log(res);//10,12,13,11,19,17
console.log(ary);//[10, 12, 13, 11, 19, 17]
//join
var res = ary.join('+');
console.log(ary); //[10, 12, 13, 11, 19, 17]
console.log(res); //10+12+13+11+19+17
var total = 0;
for (var i = 0; i < ary.length; i++) {
total += ary[i];
}
console.log(total)
var res = eval(ary.join("+"));
console.info(res);
/**
* 第四组:数组排列、排序
* 10、reverse 排列: reverse 数组倒过来排列 原有数组改变
* 11、sort 数组的排序 由大到小或由小到大 原有数组改变 只能处理10以内的排序
* sort(function(a,b){return a-b;}) 处理10以上的排序 由小到大
* sort(function(a,b){return b-a;}) 处理10以上的排序 由大到小
*/
//reverse
var res = ary.reverse();
console.log(ary); //[17, 19, 11, 13, 12, 10]
console.log(res); //[17, 19, 11, 13, 12, 10]
var res = ary.sort();
console.log(res);//[10, 11, 12, 13, 17, 19]
console.log(ary);//[10, 11, 12, 13, 17, 19]
//ary.push(3,28);
/*var res1 = ary.sort();
console.log(res1);//[10, 11, 12, 13, 17, 19, 28, 3]
console.log(ary);//[10, 11, 12, 13, 17, 19, 28, 3]*/
/*var res2 = ary.sort(function (a,b) {//有n项循环n-1次
// a代表的是每一次循环的当前项 b代表的是当前项的后一项
// a-b 就是当前项减去后一项 如果>0前面的比后面大 则两者交换位置
// sort是遵循冒泡排序思想实现的
console.info(a+'<====>'+b);
return a-b;
})*/
/**
* 第五组:不兼容
* 10、indexof
* 11、foreach
* 12、map
*/
js数组方法
最新推荐文章于 2022-08-19 15:10:27 发布