/*关于数组*
常用几个方法
pop push unshift shift concat
/
*/
var arr = new Array(1, 2, 3, 4);
arr.push(5, 6);
/*像数组末尾添加*/
console.log(arr);
/*1,2,3,4,5,6*/
arr.pop();
/*删除末尾一个*/
console.log(arr);
/*[ 1, 2, 3, 4, 5 ]*/
arr.unshift("a", "b");
console.log(arr);
/*[ 'a', 'b', 1, 2, 3, 4, 5 ]*/
arr.shift();
console.log(arr);
/*[ 'b', 1, 2, 3, 4, 5 ]*/
/*上面四个方法都是在原来基础上面修改*/
var b = arr.concat(1, 2);
/*b,1,2,3,4,5,1,2concat*/
console.log(b + "concat" + b.length);
var a = arr.concat(["q", "w"], ["e", "r"]);
console.log(a);
/*[ 'b', 1, 2, 3, 4, 5, 'q', 'w', 'e', 'r' ]
将concat中的一维数组打散
*/
var c = arr.concat(["q", "w", ["b", "v"]]);
console.log(c);
/*[ 'b', 1, 2, 3, 4, 5, 'q', 'w', [ 'b', 'v' ] ]
concat一维数组可以打散 但是二维数组不能打散 并且concat是一个新的数组
*/
/*splice
这个是增加和删除多个数组的元素 有三个参数 第一个是指定的起始下标位置,第二个指定要删除数组元素的个,第三个和后面的都是将要插入的元素
三个参数都是可选的
*/
var sp = new Array(1, 2, 3, 4, 5);
sp.splice(1);
console.log(sp);
/*[ 1 ]
当为一个参数的时候 那么指的是删除下标为1 包括1以及后面的所有元素
*/
var sp2 = new Array(1, 2, 3, 4, 5);
sp2.splice(1, 2);
console.log(sp2);
/*[ 1, 4, 5 ]
当为两个参数的时候那么从下标为1开始 往后删除两个元素
*/
var sp3 = new Array(1, 2, 3, 4, 5);
sp3.splice(1, 2, "a", "b", "v");
console.log(sp3);
/*[ 1, 'a', 'b', 'v', 4, 5 ]
当三个参数的时候 那么就是从下标为1开始删除两个元素 并且将后面的元素全部插入到元素的当前位置中
*/
/*slice
* 截取元素
* 第一个参数是开始位置
* 第二个参数是截取长度
* 并且形成一个新的数组
* */
var sl = [1, 2, 3, 4];
var s2 = sl.slice(2);
console.log(s2);
/*[ 3, 4 ]
截取从下标为2开始往后所有的元素
*/
var s3 = [1, 2, 3, 4];
var s4 = s3.slice(2, 4);
console.log(s4);
/*[ 3, 4 ]
第二个元素是指定了结束位置但是不包括结束位置的元素 从下标为3开始 下标为4的元素 但是不包含4的元素
*/
/*数组
* reverse() sort()
* */
var arr = ["2", "1", "3", "5"];
arr.reverse();
console.log(arr);
/*[ '5', '3', '1', '2' ]
1.在原来数组上排序,颠倒数组中元素的顺序
*/
var arr1 = ["2", "1", "3", "5"];
arr1.sort();
console.log(arr1);
/*[ '1', '2', '3', '5' ]
按照顺序给数组排序 也是在原来数组中排序
*/
var arr2 = ["2", "1", "9", "5", "3"];
function f(a, b) {
return -(a - b);
}
arr2.sort(f);
console.log(arr2);
var arr3 = ["2", "1", "9", "5", "3","10","6"];
function arr() {
for (var x = 0; x < arr3.length; x++) {
if (arr3[x] > arr3[x + 1]) {
var num = arr3[x];
arr3[x] = arr3[x + 1];
arr3[x + 1] = num;
console.log("ff");
}
return arr;
}
}
/*数组装换为字符串
* tostring tolocalstriong join
* */
var str = new Array(1,2,3,4);
var str1 = str.toString();
console.log(str1); /*1,2,3,4*/
console.log(typeof str1);/*string*/
var str2 = str.toLocaleString();
console.log(str2); /*1,2,3,4*/
console.log(typeof str2); /*string*/
var str3 = str.join("=");
console.log(str3); /* 1=2=3=4 */
console.log(typeof str3) /*string*/
/*splite 字符串通过分隔符转换成数组*/
var sp = "1=2=3=4"
var sp1 = sp.split("=");
console.log(sp1); /*[ '1', '2', '3', '4' ]*/
console.log(typeof sp1);/*返回的类型是个对象 而不是数组array*/
var sp2 = "123456";
var sp3 = sp2.split();
console.log(sp3); /*[ '123456' ]*/
/*定位查找
* indexof() 返回的是索引 第一个参数是需要查找的参数 第二个参数是从哪里开始查找 可选
* */
var index = ["avb","bc","sc","bc"];
var a = index.indexOf("bc",2); /*3*/
console.log(a);
/*lastindexof返回指定的值在数组中最后匹配项的索引
* */
var b = index.lastIndexOf("bc");
console.log(b); /*3*/
var c = index.lastIndexOf("bc",2);
console.log(c); /*1
加了参数回往回查找
*/
/*迭代foreach
value 代表值
index 代表索引
arry 对象
* */
var fore = [1,2,5,6,7];
var sum = 0;
fore.forEach(
function (value) {
sum += value;
}
);
console.log(sum); /*21*/