我有以下对象,如果我只想检索足球,那么我将足球放置如下,
sports['soccer']
没有带来。
我想知道我在这里想念什么吗?
sports = [] ;
sports = [{
"soccer": {
"type": "foot",
"player": 11
},
"basketball": {
"type": "hand",
"player": 5
}
}]
答案 0 :(得分:3)
您当前的代码使用单个对象创建一个数组。一种解决方案是改为创建一个对象:
sports = {
"soccer": {
"type": "foot",
"player": 11
},
"basketball": {
"type": "hand",
"player": 5
}
}
现在您可以使用sports.soccer
或sports['soccer']
访问足球数据。
如果您确实想要对象数组,则首先需要对数组进行下标才能获得第一个对象:
sports[0].soccer
或
sports[0]['soccer']
答案 1 :(得分:0)
sports = [] ;
sports = {
"soccer": {
"type": "foot",
"player": 11
},
"basketball": {
"type": "hand",
"player": 5
}
}
是一个内部包含对象的数组。
如果您这样设置:
sports['soccer']
然后您将可以呼叫sports.soccer
甚至是for(i=0; i < sports.length; i++) {
if("soccer" in sports[i]){
console.log(sports[i].soccer.type);
console.log(sports[i].soccer.player);
}
}
。
或者,如果您需要它保留一个数组,那么您需要做更多的工作。 这样的事情应该可以解决问题。
name: 'mydomain.com',
console.logs代表您想要使用值做什么
答案 2 :(得分:0)
我认为您确实需要重申一下javascript的基础知识。
在JS中,我们可以使用文字语法即时创建数据结构。例如:
let normalArr = new Array();
let literalArr = [];
let normalObj = new Object();
let literalObj = {};
使用文字语法创建数组和对象时,可以动态地使用具有元素和对象的属性初始化数组。这就是您的示例中确实发生的情况:
sports = [{
"soccer": {
"type": "foot",
"player": 11
},
"basketball": {
"type": "hand",
"player": 5
}
}];
可以通过以下方式分解代码:
要访问其中一个对象,您需要执行以下操作:
const sports = [{
"soccer": {
"type": "foot",
"player": 11
},
"basketball": {
"type": "hand",
"player": 5
}
}];
// accessing the first element of the sports array
console.log(sports[0].soccer);
console.log(sports[0].basketball);
答案 3 :(得分:0)
正如其他人指出的那样,您有一个对象数组,而不是单个对象。您可以使用find()
方法来查找具有soccer
属性的元素,然后访问该属性。
var soccer = sports.find(s => 'soccer' in s)['soccer'];
答案 4 :(得分:-1)
您可以这样做。
sports = [] ;
sports = [{
"soccer": {
"type": "foot",
"player": 11
},
"basketball": {
"type": "hand",
"player": 5
}
}]
const getSport = (sport) => {
for(var i in sports[0]) {
if (i === sport) {
return sports[0][i]
}
}
};
console.log(getSport('soccer'));
console.log(getSport('basketball'));