IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript数组详细归纳 -> 正文阅读

[JavaScript知识库]JavaScript数组详细归纳

一、创建数组

  • 数组字面量形式
	let color = ["yellow", "red", "blue"]
  • Array构造函数形式:
	let color = new Array("yellow", "red", "blue")

Array构造函数用于创建数组的两个静态方法:Array.form()Array.of()

Array.form(类数组对象结构,回调函数) 将数组结构转换为数组实例

1). 字符串拆分为数组

	console.log(Array.form("red")) // ["r", "e", "d"]

2). 将集合和映射转换为新数组

	const a1 = new Map().set("name","张三").set("age",18)
    console.log(Array.from(a1)) // [["name","张三"], ["age",18]

3). 对现有数组进行浅复制

	    const a1 = [
        {
        name: "小明",
        age: 18,
        gender: "男"
        },
        {
            name: "小明",
            age: 18,
            gender: "男"
        }]
    const a2 = Array.from(a1)
    console.log(a2)

运行结果:
在这里插入图片描述
4). arguments 对象轻松转换为数组

	function argumentArray() {
        console.log(Array.from(arguments)) // [1, 2, 3, 4]
    }
    argumentArray(1, 2, 3, 4)

5). 转换自定义对象

	let arrayLike = {
        0: '张三',
        1: '18',
        2: '男',
        3: ['猜猜', '是哪'],
        'length': 4
    }
    let arr = Array.from(arrayLike);
    console.log(arr);

运行结果:
在这里插入图片描述
Array.of(参数) 将将参数转换为数组

	Array.of(1, 2, 3, 4) // [1, 2, 3, 4]

二、迭代器方法

Array 的原型上有三个用于检索数组的方法:keys()values()entries()
例如:

	    let user = [
        {
            name: "张三",
            age: 18,
            gender: "男"
        },
        {
            name: "李四",
            age: 19,
            gender: "女"
        },
        {
            name: "王五",
            age: 20,
            gender: "女"
        }
    ]

首先使用user.key(),遍历返回数组索引

	    console.log(Array.from(user.keys())) // [0, 1, 2]

user.values(),遍历返回数组元素

	    console.log(Array.from(user.values()))

在这里插入图片描述
user.entries(),遍历返回索引 / 值对

	    console.log(Array.from(user.entries()))

在这里插入图片描述

三、数组常用操作方法

  • slice(stratIndex,endIndex)
    若参数全满,返回从开始索引到结束索引的所有元素
    若只有一个参数,返回从开始索引到结束索引的对应元素

  • splice(startIndex, length, new1, new2....)
    用于删除、替换或者插入

	let newData = {"username": "ys","age": "22","gender":"计科1902","className":"3班","id":6}
    person.splice(1,1,newData) // 这里是替换的使用

在这里插入图片描述

四、数组常用搜索方法

按严格相等搜索

indexOf()lastIndexOf() 返回要查找的元素在数组中的位置,若没有则返回-1

includes() 返回布尔值,比较时使用全等(===)

三者都有两个参数(targetElement,startIndex)

	let person = { name: "Nico"}
    let people = [{name: "Nico"}]
    let morePeople = [person]
    console.log(people.indexOf(person)) // -1
    console.log(morePeople.includes(person)) // true
    console.log(morePeople.indexOf(person)) // 0
    console.log(people.includes(person)) // false

按断言搜索

find()findeIndex() 接收三个参数 (value, index, array) , 返回真值,找到匹配项后就不在寻找。

find(参数,回调函数) 返回满足条件的元素

	  console.log(person.find(((value, index, obj) => {
      return value.id == '2'
  })))

在这里插入图片描述
findIndex(参数,回调函数) 返回满足条件的index

	let newData = person.findIndex(((value, index, obj) => {
        return value.id == '2'
    }))
    console.log(newData) // 2

五、数组常用迭代方法

参数:(value, index, array) => { }

  • every(): 若每一项都返回 true ,则这个方法返回true
	let number = [1, 3, 5, 4, 2, 8]
    let res = number.every((value => value > 2)) // false
  • some(): 只要有一项返回 true ,就返回true
	let number = [1, 3, 5, 4, 2, 8]
    let res = number.some((value => value > 2)) // true
  • filter(): 函数返回true的项会组成数组之后返回
	let number = [1, 3, 5, 4, 2, 8]
    let res = number.filter((value => value > 2)) // [3, 4, 5, 8]
  • forEach(): 无返回值
	    person.forEach((value, index, array) => {
        if (value.id == '4') {
            person.splice(index,1)
        }
    })	// 删除id为4的数据
  • map():由原数组中的每个元素调用一个指定方法后的返回值组成的新数组
	let users = [
	    {"name": "张小花", "email": "zhang@qq.com"},
	    {"name": "body", "email": "body@qq.com"},
	    {"name": "李小璐", "email": "li@qq.com"}
	];
	let newEmail = users.map(function (item) {
	    return item.name;
	});

六、归并方法

参数:reduce(function(prev, cur, index, arr), initialValue)

  • reduce() 从第一项遍历至最后一项
	let data = [1,2,3,4,5];
    let res = data.reduce((prev, cur) => {
        return prev + cur
    }, 0)
    console.log(res) // 15
  • reduceRight() 从最后一项遍历至第一项

最后一张经典图附上 😂

在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 11:33:33  更:2021-07-25 11:35:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 8:27:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码