赞
踩
在 JavaScript 中,在数组数据结构中处理和存储数据是很常见的。数组数据结构可以采用多种方式,例如数字、字符串、另一个数组作为元素或对象。在本文中,让我们讨论如何在数组中搜索对象以及每个对象中存在的各种值。
在这里,我们有一个名为 的对象数组arrayofObjects
。在每个对象内部,都有由键值对表示的各种值。有 3 个键值对。键是name
和。使用这些键,我们将能够访问每个单独对象的各自值。profession
company
- var arrayofObjects = [
- { name:"Adam", profession:"Engineer", company: "Google" },
- { name:"Sam", profession:"Manager", company: "Amazon" },
- { name:"Gerogia", profession:"Designer", company: "Netflix" },
- { name:"Kate", profession:"Engineer", company: "Microscoft" },
- { name:"James", profession:"Sales", company: "Amazon" },
- ];
数组用方括号表示,[]
而对象用花括号表示{}
。
有几种方法可以在数组中找到对象。一些方法如下所示。
在数组中查找对象的传统方法是使用forEach()循环。有了这个,我们可以遍历 for 循环中存在的每个元素
forEach()
首先,让我们使用数组访问整个对象。稍后我们将看到如何访问对象内部存在的各个值。要打印上述数组中的整个对象,可以使用forEach()
循环。这个循环将为我们提供两件事:数组中的元素本身和元素的索引。为此,我们必须将两个参数传递给forEach()
. 在这种情况下,我们只需要元素而不需要索引,因此我们将传递一个参数object
. 您可以为此参数指定任何名称。
- //print name of the people who work at amazon
- arrayofObjects.forEach(object =>{
- console.log(object);
- });
由于forEach()
循环将遍历每个元素,因此该元素将存储在此object
变量中。现在object
变量将包含数组中的整个对象。如果您object
使用控制台打印此变量,它将打印数组中存在的所有对象。
输出:
- Object { name: "Adam", profession: "Engineer", company: "Google" }
- Object { name: "Sam", profession: "Manager", company: "Amazon" }
- Object { name: "Gerogia", profession: "Designer", company: "Netflix" }
- Object { name: "Kate", profession: "Engineer", company: "Microsoft" }
- Object { name: "James", profession: "Sales", company: "Amazon" }
我们已经从数组中获取了每个对象;让我们访问这些对象的内部值。现在让我们打印在公司工作的员工的姓名Amazon
。要从对象访问任何键,我们可以在object
变量后使用一个点并指定键。例如,要访问公司密钥,我们将使用object.company
.
- //print name of the people who work at amazon
- arrayofObjects.forEach(object =>{
- if(object.company === "Amazon"){
- console.log("Amazon Employee:", object.name);
- }
- });
使用if
语句,我们将键的值与字符串进行比较Amazon
,如果匹配,我们将进入if
语句内部。object.name
之后,我们将使用如上所示打印在亚马逊工作的员工的姓名。这将为我们提供以下输出。
输出:
- Amazon Employee: Sam
- Amazon Employee: James
由于只有两个人在亚马逊工作,我们得到Sam
和James
作为输出。
name
同样,我们可以使用下面的、profession
和company
键打印所有对象的所有值。
- //print every details of a person
- arrayofObjects.forEach(object =>{
- console.log(object.name + " is " + object.profession +" who works at " + object.company);
- });
输出:
- Adam is Engineer who works at Google
- Sam is Manager who works at Amazon
- Georgia is a Designer who works at Netflix
- Kate is Engineer who works at Microsoft
- James is Sales who works at Amazon
该find()方法是在 JavaScript 中从数组中查找对象及其元素的另一种方法。这find()
是一种 ES6 方法。这种方法的工作方式类似于forEach()
循环,访问对象内部的元素与我们之前看到的类似。
在你的代码中替换forEach
为find
,你会很高兴的。下面的代码还将打印数组中的每个对象。
- arrayofObjects.find(object =>{
- console.log(object);
- });
输出:
- <Object { name: "Adam", profession: "Engineer", company: "Google" }
- Object { name: "Sam", profession: "Manager", company: "Amazon" }
- Object { name: "Gerogia", profession: "Designer", company: "Netflix" }
- Object { name: "Kate", profession: "Engineer", company: "Microsoft" }
- Object { name: "James", profession: "Sales", company: "Amazon" }
同样,我们也可以使用它们各自的键访问数组中对象的每个值,如下所示。
- arrayofObjects.find(object =>{
- console.log(object.name + " is " + object.profession +" who works at " + object.company);
- });
输出:
- Adam is Engineer who works at Google
- Sam is Manager who works at Amazon
- Georgia is Designer who works at Netflix
- Kate is Engineer who works at Microsoft
- James is Sales who works at Amazon
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。