ECMAScript(javaScript) 数组操作

版权声明:伊凡ED原创 https://blog.csdn.net/Ivan_ED/article/details/85000526

ECMAScript(javaScript) 数组操作

数组对象的作用

使用单独的变量名来存储一系列的值。


一、定义一个数组

方法1:Array定义的方法

var arr = new Array(变量名 数字 字符串...):

方法2:字面量定义的方法

var arr = [int,str,bool,{},[]] // 字面量定义数组时 内容可以为任何数据

二、关于数组的长度与位置

1.数组的位置

需要寻找一个数组中的位置时 可以用下标来找到 下标在数组变量的变量名后面加[]加数组的下标

var arr = [1,2,3,4,5,6,7]
console.log(arr[4])
//这里的输出结果为5

注意 :数字的下标是从0开始算

2.数组的长度

在JS中 数组的长度 我们可以使用 length方法来调取一个数组的长度 

var arr = [1,2,3,4,5,6,7]
console.log(arr.length)
//输出结果将会是这个数组的长度 这里为7

3.利用数组长度 取出数组中倒数多少位

var arr = [1,2,3,4,5,6,7]
console.log(arr[arr.length-1])
//输出结果位数组中倒数第一位的元素

三、操作数组的方法

1. 添加一个新元素到数组的最后一位

添加一个新元素到数组的最后一位可以使用push方法

var arr = [1,2,3,4,5,6,7];
arr.push("ED","AD");
console.log(arr);
//输出数组时 在最后面新增了需要添加的元素

2. 删除最后一位元素

删除最后一位元素 可以使用pop() 方法

var arr = [1,2,3,4,5,6,7];
arr.pop();
console.log(arr);
console.log(arr.length);
//输出这个数组时 最后一位7不见了 并且长度也少了一位

3. 在数组最前面添加元素

在数组最前面添加元素的方法可以使用unshift()方法

var arr = [1,2,3,4,5,6,7];
arr.unshift("ED","AD");
console.log(arr);
//这里的输出 在这个数组最前面添加了新的元素

4.删除数组最前面一位的元素

删除最前一位的元素的方法是shift 和在最前面添加的方法很像但没有un

var arr = [1,2,3,4,5,6,7];
arr.shift();
console.log(arr);
console.log(arr.length);
//用shift删除数组中最前面一位内容时 同样可以改变数组的长度

5. 合并数组 concat

 使用concat 的方法可以合并一个数组 并返回给一个新数组

var arr = [1,2,3,4,5,6,7],
    arr_2 = [8,9,0],
    newArr;
newArr=arr.concat(arr_2);
console.log(newArr);
console.log(newArr.length);
//↑ concat可以将两个数组合并将值赋予一个新变量


//↓ concat也可以将几个值直接加入一个数组中
var arr = [1,2,3,4,5,6,7],
    newArr;
newArr=arr.concat(8,9,0);
console.log(newArr);
console.log(newArr.length);
//上面的例子输出结果一致

6.join 将数值按要求的规则转为字符串

join可以将数组按照一定的规则转为字符串 如果不填写默认每个元素之间是以,隔开 写入空值将以一个空值隔开

<script>
    var _arr = [138,1234,4321]; //创建一个数组
    var _str0 = _arr.join("-"); //转换数组为字符串 并以-分开
    var _str1 = _arr.join(""); //转换数组为字符串 并以一个空分开
    console.log(_str0);
    console.log(_str1);

/*
 *输出为: 
 *138-1234-4321
 *13812344321
 ***/
</script>

7. reverse 将数组中的元素顺序反转

reverse可以将数字中的元素进行翻转 从最后一位开始排序( 0-n→n-0)

<script>
    var arr = [789,456,123];
    var newArr = arr.reverse();
    console.log(newArr);
/*
 * 输出:
 *[123,456,789]
 ***/
</script>

8. sort方法 排序

sort方法可以重新编写一个数组的length 并且不是副本 原始sorf可以按指定要求进行排序 一般我们使用sort函数进行数组的排序 sort()方法有一个可选参数 我们可以按要求排列顺序 如果这个参数为空 那么数组将按照ASCII字符顺序进行排序。

var arr = [1,3,4,2,"a", "b", "A", "B"];
arr.sort();
console.log(arr);

//- ↑ 输出:[1,2,3,4,"A", "B", "a", "b"]

虽然上面的排序看上去没有问题 但是在某种情况 数字的排序又会变成这样

var arr = [11, 3, 222, 4];
arr.sort();
console.log(arr);
//- ↑ 输出结果[11, 222, 3, 4]

这很明显不是我想要的结果 我就想按顺序把数字从大到小排序 这时候我们需要使用sort方法的参数了

var arr = [11, 3, 222, 4];
arr.sort(function(a,b){
    return b-a;
});
console.log(arr);
//- ↑ 输出结果[3, 4, 11, 222]

当然同样的道理

var arr = [11, 3, 222, 4];
arr.sort(function(a,b){
    return a-b;
});
console.log(arr);
//- ↑ 输出结果[222, 11, 4, 3]

9. indexOf 方法返回首次在数组中出现的位置

var arr = ['a','b','c','d','e','f'];
console.log(arr.indexOf("d"));

// - ↑ 输出: 3 
// - ↑ 这里的3是数组的length

10. lastIndexOf 方法返回最后在数组中出现的位置

var arr = ['a','d','c','d','d','f'];
console.log(arr.lastIndexOf("d"));

// - ↑ 输出: 4 
// - ↑ 这里的4是数组的length

11. splice 方法进行删除

var arr = ['a','d','c','d','d','f'];
arr.splice(2,1); // ← 第一个参数 为开始下标 第二个参数为结束下标
console.log(arr);
// - ↑ 输出: ["a", "d", "d", "d", "f"]

12. splice方法进行替换 和新增

splice方法不仅可以删除 还可以进行替换和新增 在使用splice添加或替换 可以传入多个值

 > 1. 替换方法:

var arr = ['a','d','c','d','d','f'];
arr.splice(2,1,"x"); // ← 第一个参数为开始删除的下标 第二个参数为删除的下标 并从开始的下标删除
console.log(arr);

 > 2. 添加方法:

var arr = ['a','d','c','d','d','f'];
arr.splice(2,0,"x","x"); // 结束下标为0 数组不删除 只会添加
console.log(arr);
// - ↑ 输出: ["a","d","x","x","c","d","d","f"]

猜你喜欢

转载自blog.csdn.net/Ivan_ED/article/details/85000526