ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaScript数组详解:声明、访问、赋值、遍历

2022-07-30 15:01:45  阅读:141  来源: 互联网

标签:arr 遍历 console log JavaScript 详解 数组 Array


一、数组的声明

1.使用数组字面量表示法

var arr4 = []; //创建一个空数组
var arr5 = [20]; // 创建一个包含1项数据为20的数组
var arr6 = ['lily', 'lucy', 'Tom']; // 创建一个包含3个字符串的数组

2.使用 Array 构造函数

如果只传一个数值参数,则表示创建一个初始长度为指定数值的空数组

如果传入一个非数值的参数或者参数个数大于 1,则表示创建一个包含指定元素的数组

var arr2 = new Array(20);   // 创建一个包含20项的数组
var arr3 = new Array("lily","lucy","Tom");   // 创建一个包含3个字符串的数组
 
var array4 = new Array('23'); // ["23"]

3.Array.of 方法创建数组(es6 新增)

ES6 为数组新增创建方法的目的之一,帮助开发者在使用 Array 构造器时避开 js 语言的一个怪异点。

Array.of()方法总会创建一个包含所有传入参数的数组,而不管参数的数量与类型。

let arr = Array.of(1, 2, 'a', 'b');
console.log(arr.length); //4

let arr1 = Array.of(3);
console.log(arr1.length); //1
console.log(arr1[0]); //3

let arr2 = Array.of('2', 'a');
console.log(arr2.length); //2
console.log(arr2[0]); //'2'

4.Array.from 方法创建数组(es6 新增)

在 js 中将非数组对象转换为真正的数组是非常麻烦的。在 ES6 中,将可迭代对象或者类数组对象作为第一个参数传入,Array.from()就能返回一个数组。

 结果为:

映射转换

如果你想实行进一步的数组转换,你可以向 Array.from()方法传递一个映射用的函数作为第二个参数。此函数会将数组对象的每一个值转换为目标形式,并将其存储在目标数组的对应位置上。

 

 结果为:

如果映射函数需要在对象上工作,你可以手动传递第三个参数给 Array.from()方法,从而指定映射函数内部的 this 值

结果为:

二、数组的访问

  • length属性来访问对应的长度(也可以进行设置)
var arr = new Array()
//通过length来访问数组的长度
console.log(arr.length); //0
arr.length = 11 //设置对应的长度
console.log(arr.length); //11
  • 通过下标访问
console.log(arr[0])//获取第一个
//可以允许字符串
console.log(arr['0']); //获取第一个

三.数组的赋值

arr[0] = 10
console.log(arr[0]) //10
// 给数组里面的元素随机给值
var arr = new Array()
for(var i=0;i<10;i++){
arr[i] = Math.random() //0-1 包含0 不包含1的
}
console.log(arr);

四.数组遍历

1.循环遍历

arr 是要遍历的数组 arr[i] 是遍历的数组的元素 i 是数组的元素对应的下标(索引号)

2.for in遍历 (还可用于遍历对象)

 

用于遍历对象:

 

3.for of 方法

value为遍历的数组的元素

entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历

区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历

结果:

如果不使用for...of循环,可以手动调用遍历器对象的next方法,进行遍历。

 结果:

4.forEach 遍历

forEach():对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是 function 类型,默认有传。

参数分别为:遍历的数组的项;对应数组项的索引,数组本身

 结果为:

5.map 映射

map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值

map()方法按照原始数组元素顺序依次处理元素。

该方法不会改变原数组

 结果为:

6.filter 过滤

filter():“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组

 结果为:

7.reduce 高阶函数(迭代(累加器))

返回最后一个值,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。返回初始值或计算结束后的值

 

 结果:

8.every

every():判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回 true。

 结果为:

9.some

some():判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回 true。

 结果为:

      

标签:arr,遍历,console,log,JavaScript,详解,数组,Array
来源: https://www.cnblogs.com/liuyang62626/p/16533440.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有