数组复习

114 阅读1分钟
删除 替换 添加 元素
const months = ['Jan', 'March', 'April', 'June']
months.splice(1, 0)
console.log(months)
months.splice(4, 1, 'May')
console.log(months)

提取数组 内容 start - extends
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant']
console.log(animals.slice(2, 3))

数组反转
let arr = ['1','2','3']
console.log(arr);
console.log(arr.reverse());

数组转字符串
let arr = [2020,12,13]
console.log(arr.join('-'));

检测数组是否存在某个元素 返回 下标 或 -1
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison']
console.log(beasts.indexOf('bison'))
console.log(beasts.indexOf('bison', 2))
console.log(beasts.indexOf('giraffe'))

检测数组是否存在某个元素 返回truefalse
let arr = [156, 156, 1, 59, 84, 985, 1, '1']
console.log(arr.includes('1'));

多维数组 每个元素 处理一遍
let arr = [1, 2, 3, [[4]]]
let newArr = arr.flatMap((item) => {
  return item * 2
})
console.log(newArr)

let arr1 = ["it's Sunny in", '', 'California']
console.log(arr1.map((x) => x.split(' ')));
console.log(arr1.flatMap((x) => x.split(' ')));

多维数组转换一维数组 deep深度为参数 Infinity为任意深度 扁平化数组
const arr = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]];
console.log(arr)
console.log(arr.flat(Infinity))

找到第一个符合检测函数的元素返回其值或下标
const array1 = [5, 12, 8, 130, 44]
const found = array1.find((element) => element > 10)
const founds = array1.findIndex((element) => element > 10)
console.log(found,founds)

 检测每个元素是否通过函数中的测试 返回通过的数组
let arr = [56, 84, 65, 16, 51, 6, 51, 56]
const result = arr.filter((item, idx, _arr) => {
  return item > 10
})
console.log(result)

数组批量填充 指定下标 23参数为下标范围可选
let arr = [45, 48, 6589, 48, 9498]
arr.fill('★', 0, 1)
console.log(arr)

大于30 小于40
const istest = (val) => {
  return val > 30  && 40 > val
}
const arr = [35, 34, 36, 32, 38, 36]
console.log(arr.every(istest))

取出每个值得KEY+VAL 合并为数组 通过next().value 输出
const array1 = ['a', 'b', 'c'];
const iterator1 = array1.entries()
console.log(iterator1.next().value);