js数组属性方法

数组是大多数语言里面最常见的一种数据结构,它是一个有序的值列表。

创建数组

1、字面量创建数组

let arr = [];

2、构造函数创建数组

let arr = new Array();

无论是字面量还是构造函数创建 用 typeof 都会返回一个 object 因为数组是复杂数据类型

let arr1 = [];
let arr2 = new Array();·
console.log(typeof arr1); // object
console.log(typeof arr2); // object

数组赋值

1、先声明在赋值

let arr = [];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;

注意下标是从0开始的。
2、声明是直接赋值

let arr = [1,2,3,4,5];

注意:数组可以在任意位置赋值,长度也会自动改变,空出的位置会用undefined填充

let arr = [];
arr[0] = 1;
arr[4] = 10;
console.log(arr);// [ 1, <3 empty items>, 10 ]
//访问元素
console.log(arr[1]);//undefined
console.log(arr[0]);//1

由于javascript动态语言,数组类型可以是任意类型

let arr = [1,"Hello",3.14,true];

删除元素

可以用 delete 删除数组某一个元素

let arr = [1,2,3,4,5];
delete arr[2]; // 删除数组中第三个元素
console.log(arr);
// [ 1, 2, <1 empty item>, 4, 5 ]

属性和方法

相关属性

length这个属性,用于返回该数组元素个数。

let arr = [1,2,3,4,5];
console.log(arr.length); // 5

也可以利用这个属性快速的的清空数组

let arr = [1,2,3,4,5];
arr.length = 0;
console.log(arr); // []

也可以对数组的长度进行操控

let arr = [1,2,3,4,5];
arr.length = 3;
console.log(arr); // [1,2,3]

相关方法

添加
1、push()方法:在数组最后添加一个或多个元素
push执行后会返回新数组的长度

let arr = [1];
let i = arr.push("red","blue");
console.log(arr); // [1, 'red', 'blue' ]
console.log(i); // 2 该数组长度

2、unshift() 在数组最前面添加一个或多个元素

let arr = [1];
arr.unshift("red","green","pink");
console.log(arr); // [ "red","green","pink",1 ]

删除
1、pop() 删除数组最后一个元素,pop执行后会返回被删除元素内容

let arr = ["red","blue"];
 arr.pop();
 console.log(arr); // [ 'red' ]

2、shift() 删除数组第一个元素,shift执行后会返回被删除元素内容

let arr = ["red","blue"];
 arr.shift();
 console.log(arr); // [ 'blue' ]

操作方法

concat() 先创建一个副本,然后将接收的参数添加到副本尾部,原本数组不会变化

let arr = [1,2,3];
let arr2 = arr.concat("red","blue");
console.log(arr);//[ 1, 2, 3 ]
console.log(arr2);//[ 1, 2, 3, 'red', 'blue' ]

slice() 截取

表示返回截取下标为多少,和以后的内容
1、第一个代表起始位置
2、第二个代表结束位置
最后得到的内容是:
下标第一个数内容截取,截取内容到第二个数,但不包含第二个数内容。
从下表为多少的内容截取,截取个数为:第一个数~第二个数(个)。

如果是负值,截取的位置就相当于用数组的长度加上这个负值,不会影响原数组

let arr = [1,2,3,4,5,6,7,8,9,10];
// 一个参数
let i = arr.slice(3);
console.log(i); // [ 4, 5, 6, 7, 8, 9, 10 ]
console.log(arr); // [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
// 二个参数
let j = arr.slice(2,6);
console.log(j); // [ 3, 4, 5, 6 ]
console.log(arr); // [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
//负数
let arr = [1,2,3,4,5,6,7,8,9,10];
// 一个参数
let i = arr.slice(-3);// 等价slice(7)
console.log(i); // [ 8, 9, 10 ]
// 两个参数
let j = arr.slice(-6,-2); // 等价slice(4,8)
console.log(j); // [ 5, 6, 7, 8 ]
// 不满足条件返回空数组
let k = arr.slice(-2,-6); // 等价slice(8,4)
console.log(k); // []

splice() 这个方法功能相对强大很多可以:删除,插入,替换

参数1:代表起始位置
参数2:代表想要删除的个数
参数2+n:代表插入的元素
删除

let arr = [1,2,3,4,5,6,7,8,9,10];
// 从下标为3的元素开始删除,删除5个元素
//将删除的元素返回给i
let i = arr.splice(3,5);
console.log(i); // [ 4, 5, 6, 7, 8 ]
console.log(arr); // [ 1, 2, 3, 9, 10 ]

插入

let arr = [1,2,3,4,5,6,7,8,9,10];
//从下标为3的元素之前开始插入
let i = arr.splice(3,0,"red","blue");
console.log(i); // []
console.log(arr);
// [ 1, 2, 3, 'red', 'blue', 4, 5, 6, 7, 8, 9, 10 ]

替换

let arr = [1,2,3,4,5,6,7,8,9,10];
//从下标为3的元素之前开始插入
//插入多少,就刚好删除多少
let i = arr.splice(3,2,"red","blue");
console.log(i); // [ 4, 5 ]
console.log(arr);
// [ 1, 2, 3, 'red', 'blue', 6, 7, 8, 9, 10 ]

数组和字符串互相转换
join() 是将始终转换为字符串,可以传入分隔符作为参数

let arr = [1,2,3];
let str = arr.join("");
console.log(str); // 123
let str2 = arr.join(",");
console.log(str2); // 1,2,3

split() 是将字符串转换为数组,传入参数指明以什么作为分隔符

let str = "Hello";
let arr = str.split("");
console.log(arr); // [ 'H', 'e', 'l', 'l', 'o' ]
let arr2 = str.split("l");
console.log(arr2); // [ 'He', '', 'o' ]

数组排序方法
reverse() 用于数组的倒序,会改变原来数组

let arr = [1,2,3,4,5];
console.log(arr.reverse()); // [ 5, 4, 3, 2, 1 ]
console.log(arr); // [ 5, 4, 3, 2, 1 ]

sort() 是按照升序排列数组每一项 ,用时需要传入回调函数

let arr = [0,12,3,7,-12,23];
console.log(arr.sort(function(a,b){
 if(a < b){
 return -1;
 }else if(a > b){
 return 1;
 }else{
 return 0;
 }
 }));
 //如果是倒序修改返回值即可
 let arr = [0,12,3,7,-12,23];
console.log(arr.sort(function(a,b){
 if(a < b){
 return 1;
 }else if(a > b){
 return -1;
 }else{
 return 0;
 }
}));
//简化后
let arr = [0,12,3,7,-12,23];
console.log(arr.sort(function(a,b){
 return a - b;
 // 降序就返回 b - a
}));
//使用箭头函数更加简洁
let arr = [0,12,3,7,-12,23];
console.log(arr.sort((a,b)=>a-b));

位置方法

indexOf()从左往右,去找元素,返回第一个满足条件的下标
lastIndexOf从右往左,去找元素,返回第一个满足条件的下标
不存在的数返回值为-1,有返回下标,这个两个方法进行查找使用的都是全等进行比较

let arr = ["H","e","l","l","o"];
console.log(arr.indexOf("l")); // 2
console.log(arr.lastIndexOf("l")); // 3
console.log(arr.indexOf("z")); // -1

includes() 用于查询数组是否包含某元素,包含返回true,否则返回false

let arr = ["1","2","3"];
console.log(arr.includes(2)); // flase
console.log(arr.includes("2")); // true
console.log(arr.includes(7)); // false

find()方法返回通过测试(函数内判断)的数组的第一个元素的值.否则返回undefined

let array1 = [5, 12, 8, 110, 88];
 
let found = array1.find(element => {
  return element > 10;
});
 
console.log(found);
// output: 12
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值