首页 > 解决方案 > 如果对象存储在数组中,是否可以从数组中查看/检索对象的名称?

问题描述

背景:在下面的简化数据结构中,访问单个项目及其属性很简单。例如,大众汽车的价值很容易获得。

let car = {};
let truck = {};

car.one = 'Volkswagon';
car.two = 'Toyota';

truck.one = 'Dakota';
truck.two = 'Tacoma';

let vehicleArray = [car, truck];

console.log(vehicleArray[0].one);  //Volkswagon

问题:但是是否可以访问存储在数组中的对象的名称?在这种情况下,值cartruck。我不确定如何将它们从阵列中取出。

下面的代码返回对象内部的属性和值,但不返回对象的名称。

console.log(vehicleArray[0]); // { one: 'Volkswagon', two: 'Toyota' }

标签: javascript

解决方案


您可以map像这样在数组上检索所有值:

let car = {};
let truck = {};

car.one = 'Volkswagon';
car.two = 'Toyota';

truck.one = 'Dakota';
truck.two = 'Tacoma';

let vehicleArray = [car, truck];

vehicleArray.map(({ one, two }) => console.log(one, two))

或者filter可以获得一个特定的值:

let car = {};
let truck = {};

car.one = 'Volkswagon';
car.two = 'Toyota';

truck.one = 'Dakota';
truck.two = 'Tacoma';

let vehicleArray = [car, truck];

console.log(vehicleArray.filter(item => item === truck)[0].one)

这通过检查对象相等来工作。因为truckvehicleArray[1]正在引用同一个对象。


推荐阅读