数组是JS最常见的概念之一,它为我们提供了处理存储数据的许多可能性。在刷题过程中常会用的一些技巧,对数组中的元素进行操作。
1.数组去重
两种方法:
- 使用.from()方法
- 使用拓展运算符…
1
2
3
4
5
6
7
8let fruits = ["banana", "apple", "orange", "watermelon", "apple", "orange", "grape", "apple"]
// 第一种方法
let uniqueFruits = Array.from(new Set(fruits))
// returns [“banana”, “apple”, “orange”, “watermelon”, “grape”]
//第二种方法
let uniqueFruits2 = [...new Set(fruits)]
// returns [“banana”, “apple”, “orange”, “watermelon”, “grape”]
2.替换数组中特定的值
使用.splice(start , value to remove , value to add),其中三个参数分别指明从哪里开始、要更改多少个值、更改时使用的替换值
1 | let fruits = ["banana", "apple", "orange", "watermelon", "apple", "orange", "grape", "apple"] |
3.不使用.map()映射数组
也许每个人都知道数组的.map()方法,但是可以使用另一种方案来获得相似的效果,并且代码非常简洁。这里我们可用.from()方法。
1 | let friends = [ |
补充知识:使用.map()映射数组
一般写法:
- 创建Map
- 将需要查询的数据,按照 “key - value” 的形式存储到map对象中,其中key为关键字,value为查询的信息
- 查询时根据key查找对应的value
1
2
3
4
5
6
7let arr = [1,2,3]
let result = arr.map(function(item){
return item*2
})
console.log(result)
// return [2,4,6]
1 | // 箭头函数写法 |
4.清空数组
清空数组仅需要将数组的长度设为0即可
1 | let fruits = ["banana", "apple", "orange", "watermelon", "apple", "orange", "grape", "apple"]; |
5.数组转对象
数组转换为对象的最快方法是使用扩展运算符…
1 | let fruits = ["banana", "apple", "orange", "watermelon"]; |
6.用数据填充数组
在刷题时,一般会初始化一个具有相同值的数组。使用.fill()可以快速实现这一需求。
1 | let newArray = new Array(10).fill('1') // 数组长度为10,填充内容为‘1’ |
7.合并数组
两种方法:
- .concat()方法
- 扩展运算符…
1
2
3
4
5
6
7
8
9
10let fruits = ["apple","orange"];
let meat = ["beaf","fish"]
let vegetables = ["potato","cucumber"]
console.log(fruits.concat(meat).concat(vegetables))
// return ["apple", "orange", "beaf", "fish", "potato", "cucumber"]
let food = [...fruits,...meat,...vegetables]
console.log(food)
// return ["apple", "orange", "beaf", "fish", "potato", "cucumber"]
8.求数组交集
1 | var numOne = [0, 2, 4, 6, 8, 8]; |
9.从数组中删除虚值
在Javascript中,虚值有false, 0, „”, null, NaN, undefined。现在,我们可以找到如何从数组中删除此类值。为此,我们将使用.filter()方法。
1 | var mixedArr = [0, “blue”, “”, NaN, 9, true, undefined, “white”, false]; |
10.从数组中获取随机值
可以根据数组长度获取随机索引号
1 | var colors = ["blue", "white", "green", "navy", "pink", "purple"]; |
11. 反转数组
使用.reverse()方法
1 | var colors = ["blue", "white", "green", "navy", "pink", "purple"]; |
12.lastIndexOf()方法
lastIndexOf()方法:查找给定元素的最后一次出现的索引。
1 | var nums = [1, 5, 2, 6, 3, 5, 2, 3, 6, 5, 2, 7]; |
13.求数组中的所有值的和
1 | var nums = [1, 5, 2, 6]; |