JavaScript 教程 您所在的位置:网站首页 js对象编程 JavaScript 教程

JavaScript 教程

2023-08-19 22:56| 来源: 网络整理| 查看: 265

我每周平均处理 JSON 数据 18 次,但几乎每次我都需要 Google 搜索特定的方法,如果有一本终极指南可以为我提供答案就好了😏

在本文中,我将向你展示在 JavaScript 中使用对象数组的基础知识。

如果你曾经使用过 JSON 结构,那么你就已经使用过 JavaScript 对象。从字面意思看,JSON 代表 JavaScript Object Notation。

创建一个对象很简单:

{ "color": "purple", "type": "minivan", // 注册日期 "registration": new Date('2012-02-03'), //载人数 "capacity": 7 }

该对象代表一辆汽车。汽车可以有多种类型和颜色,并且每个对象代表一辆特定的汽车。

68747470733a2f2f7777772e66726565636f646563616d702e6f72672f6e6577732f636f6e74656e742f696d616765732f323032302f30352f707572706c652e706e67

大多数时候你都是从外部服务获取此类数据,但是有时你需要手动创建对象及其数组,就像我创建这个电子商店时一样:

68747470733a2f2f7777772e66726565636f646563616d702e6f72672f6e6577732f636f6e74656e742f696d616765732f323032302f30352f63617465676f726965732e6a7067

每个类别列表项在 HTML 中看起来像这样:

68747470733a2f2f7777772e66726565636f646563616d702e6f72672f6e6577732f636f6e74656e742f696d616765732f323032302f30352f636f64652e6a7067

但我不想将此代码重复 12 次,因为这很难维护。

创建对象数组

让我们回到汽车的话题上来。我们来看看这些车:

68747470733a2f2f7777772e66726565636f646563616d702e6f72672f6e6577732f636f6e74656e742f696d616765732f323032302f30352f636172732e6a7067

我们用数组表示它们:

let cars = [ { "color": "purple", "type": "minivan", "registration": new Date('2017-01-03'), "capacity": 7 }, { "color": "red", "type": "station wagon", "registration": new Date('2018-03-03'), "capacity": 5 }, { ... }, ... ]

对象数组并非始终保持不变,我们总是需要操作它们。因此,让我们看一下如何将新对象添加到已经存在的数组中。

在头部添加一个新对象 - Array.unshift

68747470733a2f2f7777772e66726565636f646563616d702e6f72672f6e6577732f636f6e74656e742f696d616765732f323032302f30352f626567696e6e696e672e6a7067

在头部添加一个对象, 使用 Array.unshift。

let car = { color: 'red', type: 'cabrio', registration: new Date('2016-05-02'), capacity: 2, }; cars.unshift(car); 在尾部添加一个新对象 - Array.push

68747470733a2f2f7777772e66726565636f646563616d702e6f72672f6e6577732f636f6e74656e742f696d616765732f323032302f30352f656e64696e672e6a7067

添加一个对象到尾部的位置,使用 Array.push。

let car = { color: 'red', type: 'cabrio', registration: new Date('2016-05-02'), capacity: 2, }; cars.push(car); 添加一个新对象到中间位置 - Array.splice

68747470733a2f2f7777772e66726565636f646563616d702e6f72672f6e6577732f636f6e74656e742f696d616765732f323032302f30352f6d6964646c652e6a7067

添加一个对象到中间位置,使用 Array.splice。此方法非常方便,因为它也可以删除数组的某一个元素。注意其参数:

Array.splice( {index where to start}, {how many items to remove}, {items to add} );

因此,如果我们要在第五个位置添加红色敞篷车,可以像下面这样写:

let car = { color: 'red', type: 'cabrio', registration: new Date('2016-05-02'), capacity: 2, }; cars.splice(4, 0, car); 对象数组的遍历

JavaScript 提供了许多函数/方法,可以解决你的某些问题,从而无需你手动实现其内部逻辑。我们来看看吧。

通过其值在数组中查找特定的对象 - Array.find

如果想在车辆数组中找到一辆红色的,我们可以使用 Array.find。

68747470733a2f2f7777772e66726565636f646563616d702e6f72672f6e6577732f636f6e74656e742f696d616765732f323032302f30352f636172732d636f6c6f727265642e6a7067

let car = cars.find((car) => car.color === 'red');

这个函数返回匹配到的第一个元素:

console.log(car); // output: // { // color: 'red', // type: 'station wagon', // registration: 'Sat Mar 03 2018 01:00:00 GMT+0100 (GMT+01:00)', // capacity: 5 // }

也可以搜索多个值:

let car = cars.find(car => car.color === "red" && car.type === "cabrio");

在这种情况下,我们将获得车辆列表中的最后一辆车。

从数组中获取符合条件的多个元素 - Array.filter

Array.find 方法只返回一个对象。如果你想获取所有红色的车,你需要使用 Array.filter。

68747470733a2f2f7777772e66726565636f646563616d702e6f72672f6e6577732f636f6e74656e742f696d616765732f323032302f30352f636172732d636f6c6f72726564322e6a7067

let redCars = cars.filter((car) => car.color === 'red'); console.log(redCars); // output: // [ // { // color: 'red', // type: 'station wagon', // registration: 'Sat Mar 03 2018 01:00:00 GMT+0100 (GMT+01:00)', // capacity: 5 // }, // { // color: 'red', // type: 'cabrio', // registration: 'Sat Mar 03 2012 01:00:00 GMT+0100 (GMT+01:00)', // capacity: 2 // } // ] 转换数组的对象 - Array.map

在数组的所有方法中,Array.map方法可以说是我们使用最频繁的了。将对象数组转换为不同对象的数组,这就是 Array.map 的工作。假设我们要根据汽车的大小将其分为三类:

68747470733a2f2f7777772e66726565636f646563616d702e6f72672f6e6577732f636f6e74656e742f696d616765732f323032302f30352f636172732d73697a65732e6a7067

let sizes = cars.map((car) => { if (car.capacity car.capacity >= 4); // output: false

你可能还记得函数Array.includes与Array.some类似,但只有元素是原始类型的时候,二者才类似。

总结

在本文中,我们介绍了一些基本函数/方法,这些方法可帮助你创建、操作、转换和遍历对象数组,它们应该涵盖了你遇到的大多数数据处理场景。

如果你遇到更复杂的数组使用场景,请查看 freeCodeCamp 的这篇数组详细指南或参考 W3Schools 的这篇资料。

或者与我联系(Twitter@ondrabus),我可以准备另外一篇文章:-)

原文:JavaScript Array of Objects Tutorial – How to Create, Update, and Loop Through Objects Using JS Array Methods,作者:Ondrej Polesny



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有