数组常用方法

142 阅读5分钟

第一部分:

数组的概念:是一种容器,可以同时存放多个数据值

数组的特点:

  1. 数组是一种引用数据类型
  2. 数组当中的多个数据,类型必须统一
  3. 数组的长度在程序运行期间不可以改变

两种常见的初始化方式:

1.动态初始化(指定长度)
2.静态初始化(指定类容)

动态初始化数组的格式:
数据类型[] 数组名称 = new 数组类型[数组长度]

解析含义:

  • 左侧数据类型:也就是数组当中保存的数据,全都是统一的什么类型
  • 左侧的括号:代表是一个数组
  • 左侧数组名称:给数组取一个名字
  • 右侧的new:代表创建数组的动作
  • 右侧的数据类型:必须和左边的数据类型保持一致
  • 右侧中括的长度:也就是数组当中,到底可以保存多少个数据,是一个int数字
//动态初始化(指定长度)
int[] array1 = new int[3377];

第二部分:

数组基本用法归纳:

一、定义数组

arr= [],
var arr = new Array();

二、数组用法

基础方法:

.push()方法

push 可以在数组末尾添加一个值,例子:

var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits.push(“Kiwi”)

.copyWithin() 方法

复制数组的前面两个元素到后面两个元素上:

var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits.copyWithin(2, 0);

.unshift() 方法

unshift 向数组的开头添加一个或更多元素,并返回新的长度。

.pop()方法

移除最后一个数组元素

var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits.pop();

.shift() 方法

删除并返回数组的第一个元素

var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits.shift()

.splice() 方法

数组中添加新元素:

var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits.splice(2,0,”Lemon”,”Kiwi”);

.slice()方法

选取数组的的一部分,并返回一个新数组。

var fruits = [“Banana”, “Orange”, “Lemon”, “Apple”, “Mango”];
var citrus = fruits.slice(1,3);

.map() 方法

map 方法可以方便的迭代数组,例子:

var timesFour = oldArray.map(function(val){
return val * 4;
}); map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组。注意,这个方法不会改变原始数组。

.find()方法

find()方法对数组中的每一项元素执行一次 callback 函数,直至有一个 callback 返回 true。当找到了这样一个元素后,该方法会立即返回这个元素的值,否则返回 [undefined]

let result = arr.find(function(item, index, array) {

// 如果返回 true,则返回 item 并停止迭代

// 如果全部false的情况,则返回 undefined });

.filter()

filter()  方法创建一个新的、由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。

const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present']; 代码: const result = words.filter(word => word.length > 6);

console.log(result);

// expected output: Array ["exuberant", "destruction", "present"]

.some()

some() 方法用于查找数组中有至少一个元素通过回调函数的测试就会返回**true,** 所有元素都没有返回值才会为false。

代码:

let c = [1, 5, 3, 6, 7, 6].some((item, index) => index === 5)

console.log(c)-------//true

.every()

every()  方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。 .

数组的普通方法:

1、concat(×,×,×)合并数组,该方法不会改变原数组(×可以是具体的值,也可以是数组,可以传任意多个)

var arr = [1, 2, 3]

var arr1 = arr.concat(4, 5)

console.log(arr);//返回的原数组

console.log(arr1);//返回新的数组

2、push(X,Y)数组末尾添加,该方法会改变原数组(X为要添加数组的第一个元素,Y为要添加数组的第二个元素,可以添加对个元素)

var arr = [1, 2, 3]

var arr2 = [1, 2]

var arr1 = arr.push(1, 2, 3)

console.log(arr);

3、splice(x,y,z) 向数组添加或删除,然后返回的是被删除的项目,该方法会改变原数组(x(必填,整数)为要添加或删除开始的位置。 y(必填 )为要删除几个数据,如果为0则不删除。y(选填)像数组添加新的项目)

var arr = [1, 2, 3]

var arr1 = arr.splice(1, 2, 4)

console.log(arr);

console.log(arr1);

4、sort() 方法用于对数组的元素进行排序,该方法会改变原数组(a-b为升序,b-a为降序)

var arr = [1, 2, 3, 1, 1]

var arr1 = arr.sort(function(a, b) {

 return b - a

})

console.log(arr);

console.log(arr1);

5、join() 方法用于把数组中的所有元素转换成字符串,如果括号不放参数,那么将用逗号隔开,该方法不会改变原数组

var arr = [1, 2, 3, 1, 1]

var arr1 = arr.join('.')

console.log(arr);

console.log(arr1);

数组的迭代方法:

1、every若数组中每一个元素都满足条件,则返回true,有一个不满足,则返回false

var arr = [1, 2, 3, 1, 1];

var flang = arr.every(function(itme) {

return itme >= 3

})

console.log(flang); 2、reduce(function(a,b){}) 对原数组进行运算合并多维数组,返回一个新数组,该方法不会改变原数组

a的值第一次为arr的第一个值,第二次a为你计算或合并的值

var arr = [1, 2, 3, 1, 1];

var flang = arr.reduce(function(a, b) {
console.log(a, b);
return a + b;

})

console.log(flang);

console.log(arr);

var arr2 = [[10, 20, 30], ['hello'], [50, 100], [40], [70, 11, 22]];

var arrx = arr.reduce(function (a, b) {

return a.concat(b) }) 3、forEach()方法用于调用数组的每个元素,并将元素传递给回调函数。

var arr = [1, 2, 3, 1, 1];

arr.forEach(function(value, index, array) {

//value:便利数组的内容

//index:对应数组的索引

//array:数组本身

console.log(value, index, array); })

第三部分:

1、创建数组:

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

let array_value = new Array();

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

let score = new Array(80,95,85,72,66,88,99);

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

let some_type =new Array('abc',123,ture,null);

2、for循环:

for(let index = 0; index<array.length;inde++>){}

3、for...in

for(const item in object){}

4、数组内容反转reverse:

var x =new Array(7,3,1,4,1,5,9,2,6,8);

p('数组x是:'+x);

x.reverse();

p('使用reverse()函数进行反转后的值是'+ x);

5、获取子数组 array。slice(start,end):