js对于数组的处理

关于数组的方法

新建数组

新建:let a = new Array()
新建并赋予初始值 let a = new Array(‘x’, ‘y’, ‘z’)
新建固定长度并用0进行填充 let a = new Array(10).fill(0)

判断数组

let arr = [12]
Object.prototype.toString.call(arr) === "[object Array]"

注:使用Object.prototype.toString.call()可以用来判断数据类型,包含对象、数组、字符串、symbol等

遍历数组

for
for (变量 of 对象)
for (变量 in 对象)
注:for in 遍历会遍历数组的所有可遍历属性
forEach()
注:返回undefined;入参:1、数组元素 2、下标 3、原数组
map()
注:返回新数组,如果在遍历中对遍历元素进行修改,修改结果会作为新数组的元素
filter()
注:遍历数组并返回符合条件的元素,返回新的数组
find()
例:[1, 2, 3, 4].find(res => res > 2) // 3
注1:找到符合条件的第一个元素并返回,之后不再继续遍历;找不到返回undefined
注2:不遍历空数组;

操作数组

[].push() 在数组最后一位添加新元素; 返回添加元素
[].pop() 删除数组最后一位元素;返回删除元素
[].unshift() 在数组首位添加新元素;返回添加元素
[].shift() 删除数组首位元素;返回删除元素
delete arr[10] 删除第11位元素

[].concat()拼接数组,入参可为单的或多个元素,也可为数组
[].slice() 切片
[].join() 连接数组元素为字符串

[].splice() 集大成者:兼有删除、添加、替换功能
[].splice(1, 2) 删除下标为1及其以后的两个元素; 返回删除元素形成的数组
[].splice(1, 0, ‘a’) 将数组下标为1的元素后面 添加 一个’a’
[].splice(1, 1, ‘a’)将数组下标为1的元素 替换 为’a’

[].reverse() 反转数组

数组的去重;交集和并集

方法1:filter + indexOf
利用filter遍历元素返回符合条件的特性和indexOf返回所存在的第一个元素的下标

 let arr = [-10, 0, 1, 'a', 0, 5, 1, 'a']
 let newArr = arr.filter( (item, index) => {
   return arr.indexOf(item) === index
 })
 console.log(newArr) // [-10, 0, 1, "a", 5]

方法2: set
set对象存储的元素唯一

let newArr = [... new Set(arr)]
console.log(newArr) // [-10, 0, 1, "a", 5]

注:以上方法不适用对数组的引用类型的元素进行去重

数组的并集:可通过concat将两个数组合并;然后通过set()进行去重

 let arr1 = [1, 0 , -10, -23, 5, 100]
 let arr2 = [0 ,1, 2, 3, 4, 5]
 let arr3 = [...new Set(arr1.concat(arr2))]
 console.log(arr3) // [1, 0, -10, -23, 5, 100, 2, 3, 4]

数组的交集:

数组的扁平化

let arr = [1, [2, 3], [4, [5, [6]]]]
let newArr = arr.toString().split(',') // ["1", "2", "3", "4", "5", "6"]

注:新的数组会变成字符串数组

let arr1 = [1, 0 , -10, -23, 5, 100]
let arr2 = [0 ,1, 2, 3, 4, 5]
let arr3 = arr1.filter(item => {
  return arr2.includes(item)
})
console.log(arr3) // [1, 0, 5]

数组的排序

[].sort()可以对元素进行排序;但是对数字数组会失效
例:

let arr = [1, 0 , -10, -23, 5, 100]
console.log(arr.sort()) //[-10, -23, 0, 1, 100, 5]

可通过如下写法更正:

 let arr = [1, 0 , -10, -23, 5, 100]
 arr.sort((a, b) => {
   return a - b
 })
 console.log(arr) // [-23, -10, 0, 1, 5, 100]

以上是升序;降序则改为return b - a

排序算法

—TODO—

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript 中提供了很多数组处理的方法,以下是一些常用的方法: 1. push() 和 pop():往数组末尾添加元素和删除数组末尾的元素。 ```javascript let arr = [1, 2, 3]; arr.push(4); // [1, 2, 3, 4] arr.pop(); // [1, 2, 3] ``` 2. shift() 和 unshift():往数组开头添加元素和删除数组开头的元素。 ```javascript let arr = [1, 2, 3]; arr.unshift(0); // [0, 1, 2, 3] arr.shift(); // [1, 2, 3] ``` 3. splice():从数组中删除元素或者在数组中添加元素。 ```javascript let arr = [1, 2, 3, 4]; arr.splice(1, 2); // [1, 4] arr.splice(1, 0, 5, 6); // [1, 5, 6, 4] ``` 4. slice():从数组中截取一段子数组。 ```javascript let arr = [1, 2, 3, 4]; let subArr = arr.slice(1, 3); // [2, 3] ``` 5. forEach():对数组中的每个元素执行一个函数。 ```javascript let arr = [1, 2, 3]; arr.forEach(function(item) { console.log(item); }); // 输出:1,2,3 ``` 6. map():对数组中的每个元素执行一个函数,并返回一个新的数组。 ```javascript let arr = [1, 2, 3]; let newArr = arr.map(function(item) { return item * 2; }); // newArr 是 [2, 4, 6] ``` 7. filter():对数组中的每个元素执行一个函数,并返回一个新的数组,新数组中只包含符合条件的元素。 ```javascript let arr = [1, 2, 3, 4, 5]; let newArr = arr.filter(function(item) { return item % 2 === 0; }); // newArr 是 [2, 4] ``` 8. reduce():对数组中的每个元素执行一个函数,将它们的值合并为一个值。 ```javascript let arr = [1, 2, 3]; let result = arr.reduce(function(total, item) { return total + item; }, 0); // result 是 6 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值