第3章 JS中特殊的对象-数组

本文介绍了JavaScript中数组的基本概念、创建、遍历、修改和添加元素的方法,包括一维和多维数组。通过实例展示了数组元素的获取、求和、找最大值、筛选偶数及转换为字符串等操作。同时提到了Array对象的常用属性如length和方法如push、pop、slice等,强调了数组在编程中的重要性。
摘要由CSDN通过智能技术生成

第3章 JS中特殊的对象-数组

之前学习的数据类型,只能存储一个值(比如:Number/String)。我们想在一个变量中存储多个值,应该如何存储?

所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。

Snipaste_2019-02-20_16-56-34

1.1 数组的创建

// 字面量方式创建数组
var arr1 = []; //空数组
// 创建一个包含3个数值的数组,多个数组项以逗号隔开
var arr2 = [1, 3, 4]; 
// 创建一个包含2个字符串的数组
var arr3 = ['a', 'c']; 
console.log(arr1);
console.log(arr2);
console.log(arr3);

// 可以通过数组的length属性获取数组的长度
console.log(arr3.length);
// 可以设置length属性改变数组中元素的个数
arr3.length = 0;

console.log(arr3[0]);//undefined

数组的元素可以是任意类型的数据,因此,有时数组中的某个元素的值又是一个数组,而这样的数组被称为多维数组,如果数组中只有其他类型的数据,而没有另外的数组值,这样的数组被称为一维数组;

通常,数组被嵌套N层,则称为N维数组,最常见的就是二维数组、三维数组、四维数组,超过一维的数组都会被泛称为多维数组;

数组的维度值越大,复杂度就越高,开发中尽量避免产生高维度值的数组;

var arr1 = [a,b,c]; // 一维数组
var arr2 = [a,b,c,[d,e]]; // 二维数组
var arr3 = [a,b,c,[d,e,[f,g]]]; // 三维数组
var arr4 = [a,b,c,[d,e,[f,g,[h,t,y]]]]; // 四维数组

1.2 获取数组元素

// 格式:数组名[下标]	下标又称索引
// 下标从0开始
// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = ['red',, 'green'];
arr[0];	// red
arr[1];	// undefined 下标位置没有数据
arr[2]; // green
arr[5]; // 这个数组的最大下标为2,因此返回undefined
// 获取多维数组的数据
var arr = ['路飞','娜美',['巴基','女帝',['佐助','乔巴']]];
console.log(arr[2][2][0]); //佐助

1.3 遍历数组

遍历:遍及所有,对数组的每一个元素都访问一次就叫遍历。

for循环数组遍历的基本语法:

for(var i = 0; i < arr.length; i++) {
	// 数组遍历的固定结构
}

for循环示例:

var arr1 = [1, 3, 4]; 

for(var i = 0;i<arr1.length;i++){
    console.log(arr1[i]);
}

whil循环示例:

var arr1 = [1, 3, 4]; 

var i = 0;
while(i<arr1.length){
    console.log(arr1[i]);
    i++;
}

1.4 为数组修改添加元素

// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = ["red", "green", "blue"];
// 把red替换成了yellow
arr[0] = "yellow";
// 给数组新增加了一个pink的值
arr[3] = "pink";

1.5 数组操作案例

案例1:求数组中的所有数的和

//求和
var arr = [10, 20, 30, 40, 50];
//定义变量存储和
var sum = 0;
for (var i = 0; i < arr.length; i++) {
    sum += arr[i];
}
console.log("和为:" + sum);

案例2:获取数组中的最大值

//最大值
var arr = [10, 20, 30, 40, 50, 60];
//假设这个变量中的值是最大的
var maxNum = arr[0];
//遍历数组
for (var i = 0; i < arr.length; i++) {
    //判断
    if (maxNum < arr[i]) {
        maxNum = arr[i];
    }
}
console.log("最大值是:" + maxNum);

案例3: 遍历出数组中所有的偶数

// 遍历出数组中所有的偶数
var arr = [1,2,3,4,5,6,7];
for(var i=0;i<arr.length;i++){
    //判断
    if(arr[i]%2==0){
        console.log(arr[i]);
    }
}

案例4:将数组转为字符串并以 | 分割

//把数组中的每个名字后面拼接一个|然后以字符串的方式输出
var names = ["卡卡西", "佐助", "凤姐", "鸣人", "黑崎一护"];
var str = "";//空的字符串,用来存储最后的拼接的结果的字符串
//不停的遍历数组的数据,并且拼接字符串
for (var i = 0; i < names.length - 1; i++) {
    str += names[i] + "|";//拼接字符串的方式
}
str += names[names.length - 1];
console.log(str);

总结:

数组就是多个数据的集合,有一维数组和多维数组之分,可以使用字面量方式创建数组,使用下标来获取数组元素数据,使用for或者while循环来遍历数组元素;

2.1 Array对象

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

2.1.1 常用属性和方法

length属性: 返回数组的成员数量。

var arr = ['a', 'b'];
console.log(arr.length) // 2

常用方法

  • push方法用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组。

    var a = [];
    a.push(1) // 1
    a.push('a') // 2
    a.push(true, {}) // 4
    console.log(a); //[1, 'a', true, {}]
    
  • pop方法用于删除数组的最后一个元素,并返回该元素。注意,该方法会改变原数组

    var a = ['a', 'b', 'c'];
    a.pop() // 'c'
    console.log(a);// ['a', 'b']
    
  • slice方法用于提取原数组的一部分,返回一个新数组,原数组不变。

    它的第一个参数为起始位置(从0开始),第二个参数为终止位置(但该位置的元素本身不包括在内)。 如果省略第二个参数,则一直返回到原数组的最后一个成员。

    var a = ['a', 'b', 'c'];
    a.pop() // 'c'
    console.log(a);// ['a', 'b']
    
  • join方法用于将数组元素以指定字符拼接为字符串,返回一个字符串,原数组不变。

    var a = ['a','b','c','d','e'];
    console.log(a.join('-')) // 'a-b-c-d-e'
    
  • 返回数组的字符串表示形式。

    var arr = [1, 2, 3, 4];
    console.log(arr.toString()); //1,2,3,4
    

2.1.2 方法和属性对照表

Array 对象的属性

属性描述
length 属性返回一个整数值,此整数比数组中所定义的最高位元素大 1,是实际元素个数。

Array 对象的方法

方法描述
concat 方法(数组)返回由两个数组组合而成的新数组。
entries 方法返回包含数组的键/值对的迭代器。
every 方法检查定义的回调函数是否为数组中的所有元素返回 true
fill 方法使用指定值填充数组。
filter 方法对数组的每个元素调用定义的回调函数,并返回回调函数为其返回 true 的值的数组。
findIndex 方法返回满足回调函数中指定的测试条件的第一个数组元素的索引值。
forEach 方法为数组中的每个元素调用定义的回调函数。
hasOwnProperty 方法返回一个布尔值,该值指示某个对象是否具有指定名称的属性。
indexOf 方法(数组)返回某个值在数组中的第一个匹配项的索引。
isPrototypeOf 方法返回一个布尔值,该值指示某个对象是否存在于另一个对象的原型链中。
join 方法返回由一个数组的所有元素串联而成的 String 对象。
keys 方法返回包含数组的索引值的迭代器。
lastIndexOf 方法(数组)返回指定值在数组中的最后一个匹配项的索引。
map 方法对数组的每个元素调用定义的回调函数并返回包含结果的数组。
pop 方法从数组中移除最后一个元素并将该元素返回。
propertyIsEnumerable 方法返回一个布尔值,该值指示指定属性是否为对象的一部分且是否可枚举。
push 方法将新元素追加到一个数组中,并返回数组的新长度。
reduce 方法通过对数组中的所有元素调用定义的回调函数来累积单个结果。 回调函数的返回值是累积的结果,并且作为对回调函数的下一个调用中的参数提供。
reduceRight 方法通过对数组中的所有元素调用定义的回调函数来按降序顺序累积单个结果。 回调函数的返回值是累积的结果,并且作为对回调函数的下一个调用中的参数提供。
reverse 方法将元素顺序被反转的 Array 对象返回。
shift 方法从数组中移除第一个元素并将返回该元素。
slice 方法(数组)返回一个数组中的一部分。
some 方法检查定义的回调函数是否为数组的任何元素返回 true
sort 方法返回一个元素已经进行了排序的 Array 对象。
splice 方法从一个数组中移除元素,如有必要,在所移除元素的位置上插入新元素,并返回所移除的元素。
toLocaleString 方法返回使用当前区域设置的字符串。
toString 方法返回数组的字符串表示形式。
unshift 方法在数组的开头插入新元素。
valueOf 方法获取对数组的引用。
values 方法返回包含数组的值的迭代器。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值