数组的方法总结

403 阅读4分钟

1数组的方法

  • push()在数组的末尾位置添加元素
  • pop()在数组最后一个位置删除元素
  • unshift()在数组的第一个位置添加元素
  • shift()在数组第一个位置删除元素
  • sort()以ASSIC码排序数组元素
  • reverse()倒叙数组
  • slice(start,end)截取数组,不包括结束下标的元素
  • splice()删除数组中指定位置的元素
  • join()分割数组并转化成字符串
  • find()找数组的元素,找到返回true,否则undefined
  • findlndex()找到返回下标,找不到返回-1
  • indexOf()查找元素,找到返回下标,否则返回-1
  • includes()查找元素,返回true或false
  • map()参数为回调函数,遍历返回新数组
  • forEach()遍历数组
  • filter()过滤方法
  • every()全部满足返回true
  • some()存在满足返回true
  • lastlndexof()查找方法
  • reduce()参数为回调函数,四个参数(前一个,当前,下标,数组)
  • reduceRight()参数为回调函数
  • concat()合并数组

创建数组

1. 在javascritp中创建数组有两种方式:1实例化Array对象;2字面量
  实例化Array对象代码:通过关键字new实现

` //创建一个数组变量(不带值创建)空数组

let array_value = new Array();

//创建一个数组变量(带值创建)

let score = new Array(80,90,40,30);

//创建一个数据变量(混合数据型)

let some_type = new Array("abc",123,true,null);

` 2.字面量 使用[]方法来表示这是一个数组变量 如下

let score = [80,70,90,30]
let some_type = ["abc",123,true,null];
let no_value = [123,,,,"abc"]

示例如下

<script>
let temp_array = new Array();
let temp_array_null = [];
let a_array = new Array(1,2,3,4,5,6,7,8,9,10);
let b_array = [1,2,3,4,5,6,7,8,9,10];
console.log('a_array的类型'typeof(a_array));
console.log('a_array的值',a_array);
console.log('b_array的类型',typeof(b_array));
console.log('b_array的值',b_array);
</script>
  • 获取数组长度

    属性length获取一个数组的长度,示列如下:

    function p(s){
    document.write(s);
    document.write("<br>");
    }
    var x_array = new Array(3,1,7,8,5,6);
    p('当前数组是:'+ x_array');
    p('通过.length获取当前数组的长度:'+ x_array.length);
    

数组的遍历和访问

1.数组的访问

在带数据的数组初始化完成后,若想取出其中某一个元素的值,可以使用取“下标”的方法获取指定下标对应的元素值。示列:

x_array = new Array(1,2,3,4,5,6);
p('当前数组是:'+ x_array);
p('获取指定下标0的元素的值:'+ x_array[0]);  //1

注意:访问下标的时候注意最后一个下标,若超出数组长度进行访问就会报错,比如:数组长度若为n,则访问的最大有效下标是n-1,下标的起始值是从0开始的。

2.数组的遍历

目前遍历的方式主要有for和for in,

1.for循环 语法:

for(let index = 0; index<array.length; index++){
const element = x_array[index];
p("读取数组元素下标为"+index+" 元素的值:" +element)
}

2.for..in 语法:

for(const item in x_array){
const element = x_array[item];
p("读取数组的元素下标为:"+item+" 元素的值:"+element);
}

3.数组元素的添加 数组方法:push(value1,value2)分别在最后的位置插入数据,示列如下:

<script>
let x_array = new Array();
x_array.push(1);
console.log(x_array);
x_array.push("1");
x_array.push(true);
x_array.push("hello","javascript",111,222);
console.log(x_array);
</script>

push的添加元素是从数组的末尾继续添加。还有一种是从数组开头开始添加。示列如下:

<script>
let x_array = new Array();
x_array.unshift(1);
console.log(x_arry);
x_arry.unshift(2);
console.log(x_array);
</script>

4.数组元素的删除 pop()方法如下:(使用pop删除元素一次只能删除一个,从数组的末尾删除)

 <script>
 let x_array = new Array(1,2,3,4,);
 console.log("初始数组:",x_array);
 x_array.pop();
 console.log("第一次pop;",x_array);
 x_array.pop();
 console.log("第二次pop;",x_array);
 x_array.pop();
 console.log("第三次pop;",x_array);
 </script>

2.shift()方法示列:一次只能删除一个从数组开头开始删除

<script>
 let x_array = new Array(1,2,3,4,);
 console.log("初始数组:",x_array);
 x_array.shift();
 console.log("第一次shift;",x_array);
 x_array.shift();
 console.log("第二次shift;",x_array);
 x_array.shift();
 console.log("第三次shift;",x_array);
 </script>

数组排序

开发中,数组中存放的数据是无序的,需要对其进行排序,javascript的数组使用了sort()方法用于对数组的元素进行排序,排序顺序可以是字母或数字,并按升序或降序,默认排序顺序为升序。

示列用法:

<script>
function(){
document.write(s);
document.write("<br>");
}
let x_array = new Array(1,2,3,8,9,6);
p(’数组x是:' +x_arry);
x_array.sort();
p('使用sort排序后的数组x_array是:' +x_array);
</script>

sort()方法的排序是比较ASCLL码的大小,默认是把所有元素先转换成string再排序,若第一个字母相同,则会比较第二个字母,用sort()方法的比较方式,会将数字变成字符串,然后按照ASCLL码进行排列,解决这个问题需要运用到函数

数组的其他方法

1.数组内容反转

数组中的reverse()方法,作用是对数组的内容进行反转,示列如下:

var x = new Array(7,5,6,4,3,);
p('数组x是:' + x);
x.reverse();
p('使用reverse()函数进行反转后的值是:' + x);

2.获取子数组

方法slice()获取子数组,可从已有的数组中返回选定的元素,语法:

array.slice(start.end)

该方法并不会修改数组,而是返回下一个子数组。如果想删除数组中的一段元素,应该使用方法

Array.splice()

示列:

var x = new Array(7,5,6,4,3,);
p('数组x是:' + x);
let y_array = x_array.slice(1);
p('x_array.slice(1)获取的子数组是:' + y_array);
let z_array = x_array.slice(1,3);
p('x_array.slice(1,3)获取的子数组是:' + z_array);
let p_array = x_array.slice(1,4);
p('x_array.slice(1,4)获取的子数组是:' + p_array);


3.删除和插入元素

方法splice()是向或者从数组中添加或删除项目,返回被删除的项目,同时也会改变原数组。

语法:

splice(index,howmany,item1,...itemX)

示列用法:

1.指定位置添加新元素:

splice()
x_array = [1,2,3,4,5];
p('原数组:' + x_array);
y_array = x_array.splice(1,0,["新增","xinzeng"]);
p('原数组改变:' + x_array);
p('截取数组:' + y_array);

2.删除指定位置,并新增项

x_array = [1,2,3,4,5];
p('原数组:' + x_array);
y_array = x_array.splice(1,1,["新增","xinzeng"]);
p('原数组改变:' + x_array);
p('截取数组:' + y_array);

3.splice(index)

x_array = [1,2,3,4,5];
p('原数组:' + x_array);
y_array = x_array.splice(3);
p('原数组改变:' + x_array);
p('截取数组:' + y_array);

splice(index)表示从下标index的位置开始删除