javascript - 如果对象存储在数组中,是否可以从数组中查看/检索对象的名称?
问题描述
背景:在下面的简化数据结构中,访问单个项目及其属性很简单。例如,大众汽车的价值很容易获得。
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
问题:但是是否可以访问存储在数组中的对象的名称?在这种情况下,值car和truck。我不确定如何将它们从阵列中取出。
下面的代码返回对象内部的属性和值,但不返回对象的名称。
console.log(vehicleArray[0]); // { one: 'Volkswagon', two: 'Toyota' }
解决方案
您可以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)
这通过检查对象相等来工作。因为truck
和vehicleArray[1]
正在引用同一个对象。
推荐阅读
- docassemble - 将代码从问题块抽象到模块
- html - CSS 我想将图像居中在一个可链接的按钮中
- windows - 如何禁用先前使用“连接”创建的连接?
- amazon-web-services - 将公共和私有流量路由到 AWS ALB
- python - 使用 sklearn.tree 中的 DecisionTreeRegressor 时,model.predict(x.head) 真正预测的是什么?
- ruby-on-rails - 无法将 credentials.yml.enc 文件添加到 VCS
- html - 溢出换行:断词与断词:断词
- html - 在 SVG 中 - 如何在不使用 javascript 的情况下加速动画或更改其持续时间?
- vb.net - 如何跳过 DateTime 转换?
- typescript - 打字稿无法识别条件