JavaScript学习笔记(七)

本文深入解析JavaScript数组的使用方法,涵盖数组的基本操作、属性、方法及迭代等,如访问元素、添加删除、排序、搜索和遍历等,是前端开发者必备的知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS数组

语法:

var cars = ["Saab", "Volvo", "BMW"];

访问数组元素

var name = cars[0];

数组是对象,使用typeof会返回object。

数组长度:.length。

访问最后一个数组:

var last = fruits[fruits.length - 1];

遍历数组:

for循环:

var fruits, text, fLen, i;

fruits = ["Banana", "Orange", "Apple", "Mango"];
fLen = fruits.length;
text = "<ul>";
for (i = 0; i < fLen; i++) {
     text += "<li>" + fruits[i] + "</li>";
} 

.foreach循环:

var fruits, text;
fruits = ["Banana", "Orange", "Apple", "Mango"];

text = "<ul>";
fruits.forEach(myFunction);
text += "</ul>";

function myFunction(value) {
  text += "<li>" + value + "</li>";
}

添加元素:

  • .push("XXX");
  • fruits[fruits.length] = "lemon";

数组和对象区别:

  • 在 JavaScript 中,数组使用数字索引
  • 在 JavaScript 中,对象使用命名索引
  • 数组是特殊类型的对象,具有数字索引。

JS数组方法

toString():把数组转换为数组值(逗号分隔)的字符串。

join(“ * ”):将所有数组元素结合为一个字符串。可以规定分隔符。

pop():从数组中删除最后一个元素,返回“被弹出”的值;

push():向数组添加一个新元素,返回新数组的长度;

shift():返回被“位移出”的字符串;

unshift():在开头向数组添加新元素,并“反向位移”旧元素;

delete fruits[0]:删除0号位元素;会留下数组未定义的空洞;不建议使用;

splice():

1、向数组添加新项;

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");

第一个参数(2)定义了应添加新元素的位置(拼接)。

第二个参数(0)定义应删除多少元素。

其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。

splice() 方法返回一个包含已删除项的数组。

2、删除元素;(不留空洞)

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(0, 1);        // 删除 fruits 中的第一个元素

concat():合并数组来创建一个新数组。

var myGirls = ["Cecilie", "Lone"];
var myBoys = ["Emil", "Tobias", "Linus"];
var myChildren = myGirls.concat(myBoys);   // 连接 myGirls 和 myBoys

slice():裁剪某个片段切出新数组;(参数是数组下标)

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(3); 

从元素3(Apple)开始切除一段数组。

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3); 

从开始参数选取元素,直到结束参数(不包括)为止。

数组排序

排序:sort()

反转排序:reverse()

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();            // 对 fruits 中的元素进行排序
fruits.reverse();         // 反转元素顺序

数字排序:sort是按照字符串顺序排序的;

如果数组按照字符串排序就会出现“25”大于“100”,因为“2”大于“1”;

我们可以通过一个比值函数修正:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b}); 

Math.max.apply([1,2,3]):返回数组最大值;

Math.min.apply([1,2,3]):返回数组最小值;

数组迭代

Array.forEach():为每个数组元素调用一次函数(回调函数)。

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);

function myFunction(value, index, array) {
  txt = txt + value + "<br>"; 
}

该函数接受 3 个参数:

  • 项目值
  • 项目索引
  • 数组本身

Array.map():

  • map() 方法通过对每个数组元素执行函数来创建新数组。
  • map() 方法不会对没有值的数组元素执行函数。
  • map() 方法不会更改原始数组。
var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value) {
  return value * 2;
}

Array.filter():创建一个包含通过测试的数组元素的新数组。

以下例子为找出并生成大于18的数组

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

Array.reduce():

  • reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。
  • reduce() 方法在数组中从左到右工作。另请参见 reduceRight()。
  • reduce() 方法不会减少原始数组。
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}

Array.every():检查所有数值是否通过测试。

Array.some():检查某些数值是否通过测试。

Array.find():返回通过测试函数的第一个数组元素的值。

Array.findIndex() :返回通过测试函数的第一个数组元素的索引。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值