Morecoin npm安装 ssm flash jsf scripting datepicker jScrollPane bootstrap后台管理 网赚视频教程 ppt视频教程下载 php抽奖源码 后台管理网站模板 python正则提取字符串 python环境配置 python语言入门 python写入文件 java数据库 java数组添加元素 java集合遍历 java创建目录 java删除数组中的某个元素 java中的泛型 shutil 数科阅读器 联发科mt6750 tomcat修改端口 pdf密码移除 图片转pdf免费软件 globalscape 黑域使用教程 淘新闻下载 套料软件 桌面系统 ps画笔颜色 python编译 dos命令大全及用法 excel乘积 唯品会客服在哪 ae合并图层
当前位置: 首页 > 学习教程  > 编程语言

Array(数组)

2020/9/19 13:40:38 文章标签:

创建一个数组

let arr = [] // []
let arr = new Array() // []
let arr = new Array(2) // [empty*2]
let arr = new Array(2).fill("") // ["", ""]

数组的方法

// 不改变原数组
// slice 截取
let arr = [1, 2, 3, 4]
let target = arr.slice(0, 2) 
// [1, 2, 3, 4] 索引为 0, 1, 2, 3
// 从索引0开始 截取到索引2(不包括2)  与splice区分好
console.log(target) // [1, 2]

// concat 合并
let arr1 = [1, 2, 3, 4]
let arr2 = [5, 6]
let target = [].concat(arr1, arr2) 
let target2 = arr1.concat(arr2)
console.log(target) // [1, 2, 3, 4, 5, 6]
console.log(target2) // [1, 2, 3, 4, 5, 6]

// join 以xxx拼接为字符串
let arr = [1, 2 ,3, 4]
let target = arr.join("-")
console.log(arr) // [1,2,3,4]
console.log(target) // "1-2-3-4" 字符串通过split("-") 拆分为数组

// indexOf 查询目标在数组中的索引
// lastIndexOf 查询目标在数组中的索引

// toString 转换为字符串
let arr = [1, 2, 3, 4]
let target = arr.toString()
console.log(target) // "1,2,3,4"
console.log(arr)// [1, 2, 3, 4]

// includes 查询数组是否包含目标
let arr = [1, 2, 3, 4]
let target = arr.includes(1)
console.log(arr) // [1, 2, 3, 4]
console.log(target) // true

// flat 打平数组里的嵌套数组
let arr = [[1, 2], 3, 4, [5, 6, 7]]
let target = arr.flat() 
// 打平一次 flat(2) 打平两次 flat(Infinity) 无限直到只有一个层级
console.log(arr) // [[1, 2], 3, 4, [5, 6, 7]]
console.log(target) // [1, 2, 3, 4, 5, 6, 7]

// 如果原数组有空位,flat()方法会跳过空位。
let arr = [1, 2,  ,4, 5]
let target = arr.flat() 
console.log(arr) // [1, 2, empty, 4, 5]
console.log(target) // [1, 2, 4, 5]

// flatMap 对原数组的每个成员执行一个函数
let arr = [[1,2], [3,4], [[5, 6], [7, 8]], 9]
let target = arr.flatMap((x) => x) // 这里可操作返回值
console.log(arr) // [[1,2], [3,4], [[5, 6], [7, 8]], 9]
console.log(target) // [1, 2, 3, 4, [5, 6], [7, 8], 9]

// 改变原数组 
// reverse 倒序 无嵌套
let arr = [1, 2, 3, 4]
let target = arr.reverse()
console.log(arr) // [4, 3, 2, 1]
console.log(target) // [4, 3, 2, 1] 返回倒序后的数组

// sort 正序 无嵌套
let arr = [1, 3, 2, 4]
let target = arr.sort()
console.log(arr) // [1, 2, 3, 4]
console.log(target) // [1, 2, 3, 4] 返回正序后的数组

// shift 删除数组的第一项
let arr = [1, 2, 3, 4]
let target = arr.shift()
console.log(arr) // [2, 3, 4]
console.log(target) // 1  返回删除的那一项

// unshift  向数组开始位置添加一项
let arr = [1, 2, 3, 4]
let target = arr.unshift(0)
console.log(arr) // [0, 1, 2, 3, 4] 
console.log(target) // 5 返回添加后数组的长度

// pop 删除数组最后一项 
let arr = [1, 2, 3, 4]
let target = arr.pop()
console.log(arr) // [1, 2, 3]
console.log(target) // 4 返回被删除的那一项

// push
let arr = [1, 2, 3, 4]
let target = arr.push(5)
console.log(arr) // [1, 2, 3, 4, 5]
console.log(target) // 5 返回添加后数组的长度

// splice 截取数组

// 删除
let arr = [1, 2, 3, 4, 5]
let target = arr.splice(0, 2) // 从数组索引0开始 截取2个
console.log(arr) // [3, 4, 5] 截取后的原数组
console.log(target) // [1, 2] 返回截取的内容

let arr = [1, 2, 3, 4, 5]
let target = arr.splice(1, 2) // 从数组索引1开始截取 截取两个
console.log(arr) // [1, 4, 5]
console.log(target) // [2, 3]

// splice 删除替换 
let arr = [1, 2, 3, 4, 5]
let target = arr.splice(0, 2, 8) // 从索引0开始 截取两个 用8 替换
console.log(arr) // [8, 3, 4, 5]
console.log(target) // [1, 2]

// splice 添加
let arr = [1, 2, 3, 4, 5]
let target = arr.splice(2, 2) // 从索引2开始 截取2个
console.log(arr) // [1, 2, 5]
console.log(target) // [3, 4]

let arr = [1, 2, 3, 4, 5]
let target = arr.splice(2, 0, 6) // 从索引2开始 不截取 在前面插入6
console.log(arr) // [1, 2, 6, 3, 4, 5]
console.log(target) // []

数组遍历方法

// forEach 遍历数组 对数组进行操作 
// 三个参数:当前索引的值, 当前索引, 原数组
// 无返回值 即使有return 也不返回
let arr = [1, 2, 3, 4]
const trget = arr.forEach((item, index, list) => {
	// 若该项为普通数据 原数组不改变
	item = item * 2
})
console.log(arr) // [1, 2, 3, 4]
console.log(trget) // undefined

let arr = [{num: 1}, {num: 2}, {num: 3}]
const target = arr.forEach((item, index, list) => {
	// 若该项为引用数据 原数组改变
    item.num = item.num * 2
    return item
})
console.log(arr) // [{num: 2}, {num: 4}, {num: 6}]
console.log(trget) // undefined

// map 遍历数组 有return 返回一个新数组  无return 则返回undefined
let arr = [{num: 1}, {num: 2}, {num: 3}]
const target = arr.map((item, index, list) => {
    item.num = item.num * 2
	return item
})
console.log(arr) // [{num: 2}, {num: 4}, {num: 6}]
console.log(target) // [{num: 2}, {num: 4}, {num: 6}]

let arr = [{num: 1}, {num: 2}, {num: 3}]
const target = arr.map((item, index, list) => {
    item.num = item.num * 2
    if (index === 1) {
    } 
    if (index !== 1) {
       return item
    }
})
console.log(arr) // [{num: 2}, {num: 4}, {num: 6}]
console.log(target) // [{num: 2}, undefined, {num: 6}]

// filter 根据过滤条件 返回符合条件的新数组
let arr = [{num: 1}, {num: 2}, {num: 3}]
const target = arr.filter((item, index, list) => {
     return item.num === 2
})
console.log(arr) // [{num: 1}, {num: 2}, {num: 3}]
console.log(target) // [{num: 2}]

let arr = [{num: 1}, {num: 2}, {num: 3}]
const target = arr.filter((item, index, list) => {
     return item.num > 1
})
console.log(arr) // [{num: 1}, {num: 2}, {num: 3}]
console.log(target) // [{num: 2}, {num: 3}]

// every 判断数组中的每一项是否满足目标条件 有一个不满足就返回false 否则返回true
let arr = [{num: 1}, {num: 2}, {num: 3}]
const target = arr.every((item, index, list) => {
     return item.num > 0
})
console.log(arr) // [{num: 1}, {num: 2}, {num: 3}]
console.log(target) // true

let arr = [{num: 1}, {num: 2}, {num: 3}]
const target = arr.every((item, index, list) => {
     return item.num > 2
})
console.log(arr) // [{num: 1}, {num: 2}, {num: 3}]
console.log(target) // false
// some 依据判断条件,数组的元素是否有一个满足,若有一个满足则返回ture
let arr = [{num: 1}, {num: 2}, {num: 3}]
const target = arr.some((item, index, list) => {
     return item.num > 2
})
console.log(arr) // [{num: 1}, {num: 2}, {num: 3}]
console.log(target) // true

// reduce 迭代数组的所有项,累加器,数组中的每个值(从左到右)合并,最终计算为一个值
let arr = [1, 2, 3, 4]
// reduce参数:第一个为回调函数, 第二个为初始值
// 回调函数的第一个参数为之前的值,第二个为当前要处理的项, 第三个参数为当前项的索引,第四个参数为原数组
// 熟练使用后可以搜索下reduce的高级用法
const sum = arr.reduce((prev, item) => {
    return prev + item
}, 0)
console.log(sum) // 10
console.log(arr) // [1, 2, 3, 4]

let arr = [{num: 1}, {num: 2}, {num: 3}, {num: 4}]
const sum = arr.reduce((prev, item) => {
    return prev + item.num
}, 0)
console.log(sum) // 10
// reduceRight 与reduce一样方向相反
// find 找到第一个满足条件的项 并返回该对象
let arr = [{num: 1}, {num: 2}, {num: 3}]
const target = arr.find((item, index, list) => {
     return item.num > 0 
})
console.log(arr) // [{num: 1}, {num: 2}, {num: 3}]
console.log(target) // {num: 1} 三项都满足 只要第一项

本文链接: http://www.dtmao.cc/news_show_200050.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?