您的位置:首页 > Web前端 > JavaScript

js数组方法

2017-03-27 11:56 190 查看
/**
* 第一组: 关于数组的增加、删除、修改
* 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
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: