了解如何访问属性值。
如果我有
let object1 = [{name: "HappyHands31"}, {job: "website developer"}, {city: "Chicago"}];
我如何只用console.log记录第二个对象的 value ?即“网站开发者”。
我知道如何使用.find()
来控制台记录整个键值对(或对象):
let object1 = [{name: "HappyHands31"}, {job: "website developer"}, {city: "Chicago"}];
console.log(object1.find(function(element) {
return element.hasOwnProperty("job");
}
));
但是这对的值呢?
答案 0 :(得分:3)
您可以通过索引在给定位置访问数组中的项。在javascript中,数组的索引以0开头:myArray[0]
。要访问返回对象的属性,只需使用点符号:myArray[0].myProperty
。
let object1 = [{name: "HappyHands31"}, {job: "website developer"}, {city: "Chicago"}];
console.log(object1[1].job);
对于您给定的示例,这也可以通过添加属性名称(带有点符号)来实现:
let object1 = [{name: "HappyHands31"}, {job: "website developer"}, {city: "Chicago"}];
console.log(object1.find(function(element) {
return element.hasOwnProperty("job");
}).job);
答案 1 :(得分:2)
您可以破坏值:
let object1 = [{name: "HappyHands31"}, {job: "website developer"}, {city: "Chicago"}];
const { job: res } = object1.find(({ job }) => job);
console.log(res);
答案 2 :(得分:1)
一种解决方案是将每个对象的密钥存储在某个位置,然后以通常的方式访问该对象。
let object1 = [{name: "HappyHands31"}, {job: "website developer"}, {city: "Chicago"}];
for(let i=0; i<3; i++){
name = Object.keys(object1[i]);
console.log(object1[i][name])
}
在这种情况下,我假设您不知道要访问的密钥的名称。
答案 3 :(得分:1)
只需在其末尾添加属性访问权限即可。
let object1 = [{name: "HappyHands31"}, {job: "website developer"}, {city: "Chicago"}];
console.log(object1.find(function(element) {
return element.hasOwnProperty("job");
}).job);
答案 4 :(得分:1)
首先,您的object1
是对象数组,而不是对象。
尽管,有一种方法可以实现您想要的。
const fun = (arr, prop) => arr.find((obj) => obj.hasOwnProperty(prop))[prop];
const object1 = [{name: 'HappyHands31'}, {job: 'website developer'}, {city: 'Chicago'}];
const property = 'job';
console.log(fun(object1, property));
答案 5 :(得分:1)
如果数组中的对象结构相同,则可以像这样将对象数组展平,然后直接将其作为对象键调用。
let object1 = [{name: "HappyHands31"}, {job: "website developer"}, {city: "Chicago"}];
let flatten = {}
object1.map((currentValue, index) => {
let key = Object.keys(currentValue)
flatten[key] = currentValue[key]
});
console.log(flatten)
console.log(flatten.job)