JavaScript第七讲:数组,及练习题

目录

今天话不多说直接进入正题!

1. 创建数组对象

2. 数组长度

3. 遍历一个数组

4. 连接数组

5. 通过指定分隔符,返回一个数组的字符串表达

6. 分别在最后的位置插入数据和获取数据(获取后删除)

7. 分别在最开始的位置插入数据和获取数据(获取后删除)

8. 对数组的内容进行排序

9. 自定义排序算法

10. 对数组的内容进行反转

11. 获取子数组

12. 删除和插入元素

删除元素

插入元素

替换元素

练习题

源代码

小结


今天话不多说直接进入正题!

1. 创建数组对象

在JavaScript中,你可以通过以下方式创建数组:

// 使用数组字面量  
let array1 = [1, 2, 3, 4, 5];  
  
// 使用Array构造函数  
let array2 = new Array(1, 2, 3, 4, 5);  
  
// 创建一个空数组  
let array3 = [];

2. 数组长度

使用length属性来获取或设置数组的长度:

let array = [1, 2, 3];  
console.log(array.length); // 输出 3  
  
// 设置长度可以添加或删除元素  
array.length = 2; // 现在数组只包含 [1, 2]

3. 遍历一个数组

你可以使用for循环、for...of循环或forEach方法来遍历数组:

let array = [1, 2, 3, 4, 5];  
  
// 使用for循环  
for (let i = 0; i < array.length; i++) {  
    console.log(array[i]);  
}  
  
// 使用for...of循环  
for (let element of array) {  
    console.log(element);  
}  
  
// 使用forEach方法  
array.forEach(function(element) {  
    console.log(element);  
});

4. 连接数组

使用concat方法连接两个或多个数组:

let array1 = [1, 2, 3];  
let array2 = [4, 5, 6];  
let array3 = array1.concat(array2);  
console.log(array3); // 输出 [1, 2, 3, 4, 5, 6]

5. 通过指定分隔符,返回一个数组的字符串表达

使用join方法,通过指定分隔符将数组元素转换为字符串:

let array = ['a', 'b', 'c'];  
let str = array.join(','); // 使用逗号作为分隔符  
console.log(str); // 输出 "a,b,c"

6. 分别在最后的位置插入数据和获取数据(获取后删除)

使用push方法添加元素到数组末尾,使用pop方法移除并返回数组的最后一个元素:

let array = [1, 2, 3];  
array.push(4); // 添加元素 4 到末尾  
console.log(array); // 输出 [1, 2, 3, 4]  
  
let lastElement = array.pop(); // 移除并返回最后一个元素  
console.log(lastElement); // 输出 4  
console.log(array); // 输出 [1, 2, 3]

7. 分别在最开始的位置插入数据和获取数据(获取后删除)

使用unshift方法添加元素到数组开始,使用shift方法移除并返回数组的第一个元素:

let array = [2, 3, 4];  
array.unshift(1); // 添加元素 1 到开始  
console.log(array); // 输出 [1, 2, 3, 4]  
  
let firstElement = array.shift(); // 移除并返回第一个元素  
console.log(firstElement); // 输出 1  
console.log(array); // 输出 [2, 3, 4]

8. 对数组的内容进行排序

使用sort方法对数组进行排序。默认情况下,它会将数组元素转换为字符串,然后按照字符的Unicode码点进行排序:

let array = [5, 1, 4, 2, 3];  
array.sort(); // 默认排序,可能会得到不期望的结果  
console.log(array); // 输出 [1, 2, 3, 4, 5] 或其他,取决于浏览器实现  
  
// 使用自定义比较函数进行排序  
array.sort(function(a, b) {  
    return a - b; // 升序排序  
});  
console.log(array); // 输出 [1, 2, 3, 4, 5]

9. 自定义排序算法

在JavaScript中,数组的sort()方法允许你传入一个自定义的比较函数,以实现自定义排序。这个比较函数应该接收两个参数,并返回一个负数、零或正数,分别表示第一个参数应该排在第二个参数之前、相等或之后。

let array = [5, 1, 4, 2, 3];  
  
// 自定义升序排序  
array.sort(function(a, b) {  
    return a - b;  
});  
console.log(array); // 输出 [1, 2, 3, 4, 5]  
  
// 自定义降序排序  
array.sort(function(a, b) {  
    return b - a;  
});  
console.log(array); // 输出 [5, 4, 3, 2, 1]

10. 对数组的内容进行反转

数组的reverse()方法用于反转数组中的元素顺序。

let array = [1, 2, 3, 4, 5];  
array.reverse();  
console.log(array); // 输出 [5, 4, 3, 2, 1]

11. 获取子数组

数组的slice()方法用于提取数组的一部分浅拷贝到一个新数组对象,并返回这个新数组。原数组不会被改变。

let array = [1, 2, 3, 4, 5];  
  
// 从索引1开始,提取到索引3(不包括索引3的元素)  
let subArray = array.slice(1, 3);  
console.log(subArray); // 输出 [2, 3]  
  
// 如果只提供一个参数,则从该索引开始到数组末尾  
let endArray = array.slice(2);  
console.log(endArray); // 输出 [3, 4, 5]

12. 删除和插入元素

在JavaScript中,数组的splice()方法是一种非常强大的工具,它可以在任何位置添加/删除项目,并返回被删除的项目。

删除元素
let array = [1, 2, 3, 4, 5];  
  
// 从索引1开始,删除2个元素  
let removedItems = array.splice(1, 2);  
console.log(array); // 输出 [1, 4, 5]  
console.log(removedItems); // 输出 [2, 3],这是被删除的元素
插入元素
let array = [1, 4, 5];  
  
// 在索引1的位置插入2和3  
array.splice(1, 0, 2, 3); // 第二个参数为0,表示不删除任何元素  
console.log(array); // 输出 [1, 2, 3, 4, 5]
替换元素
let array = [1, 2, 3, 4, 5];  
  
// 从索引1开始,替换2个元素为6和7  
array.splice(1, 2, 6, 7);  
console.log(array); // 输出 [1, 6, 7, 4, 5]

注意:splice()方法会直接修改原数组。如果你不希望原数组被改变,可以先使用slice()方法复制一份数组,再在新数组上使用splice()

练习题

编写一个JavaScript程序,该程序完成以下任务:

  1. 创建一个包含5个随机整数的数组(范围在1到100之间)。
  2. 使用sort()方法和自定义比较函数对该数组进行降序排序。
  3. 使用slice()方法获取数组的前三个元素,并存储在新的数组中。
  4. 使用splice()方法在原始数组的第二个位置插入一个新元素(值为100)。
  5. 使用reverse()方法反转原始数组。
  6. 输出原始数组、排序后的数组、子数组、插入元素后的数组以及反转后的数组。

源代码

// 1. 创建一个包含5个随机整数的数组(范围在1到100之间)  
let originalArray = [];  
for (let i = 0; i < 5; i++) {  
    originalArray.push(Math.floor(Math.random() * 100) + 1);  
}  
console.log('原始数组:', originalArray);  
  
// 2. 使用sort()方法和自定义比较函数对该数组进行降序排序  
originalArray.sort(function(a, b) {  
    return b - a;  
});  
console.log('排序后的数组:', originalArray);  
  
// 3. 使用slice()方法获取数组的前三个元素,并存储在新的数组中  
let subArray = originalArray.slice(0, 3);  
console.log('子数组:', subArray);  
  
// 4. 使用splice()方法在原始数组的第二个位置插入一个新元素(值为100)  
originalArray.splice(1, 0, 100);  
console.log('插入元素后的数组:', originalArray);  
  
// 5. 使用reverse()方法反转原始数组  
originalArray.reverse();  
console.log('反转后的数组:', originalArray);

运行这段代码,你会看到控制台输出了题目要求的各个数组。注意,由于Math.random()的使用,每次运行程序时原始数组的内容都会不同。

小结

今天就到这里了,期待下次相遇!

respect!

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值