无法在 javascript 中将数组分配给对象属性
2021-08-30
80
Object 属性仅保存指定值的第一个元素
let groupedDepActivities=[]
groupedDepActivities.push({
id:1,
term_activity:{
terms:[{id:1},{from:'here'},{to:'there'},]
}
})
console.log()
结果将是
*
term_activity:
terms: Array(1)
0:
id: "1"
[[Prototype]]: Object
length: 1
*
terms 属性仅保存数组的
第一个元素(id:1)
,而不是全部
2个回答
控制台的输出可能被截断,但您的代码可以按预期工作。
let groupedDepActivities = []
groupedDepActivities.push({
id: 1,
term_activity: {
terms: [{
id: 1
}, {
from: 'here'
}, {
to: 'there'
}, ]
}
})
console.log(groupedDepActivities);
输出:
[
{
"id": 1,
"term_activity": {
"terms": [
{
"id": 1
},
{
"from": "here"
},
{
"to": "there"
}
]
}
}
]
您是否希望
terms
成为单个对象?
let groupedDepActivities = []
groupedDepActivities.push({
id: 1,
term_activity: {
terms: {
id: 1,
from: 'here',
to: 'there',
}
}
})
console.log(groupedDepActivities);
[
{
"id": 1,
"term_activity": {
"terms": {
"id": 1,
"from": "here",
"to": "there"
}
}
}
]
ray
2021-08-30
您只推送一个对象,即这个:
{
id:1,
term_activity:{
terms:[{id:1},{from:'here'},{to:'there'},]
}
}
处理对象时需要区分:
{},来自数组
[]
。
例如,要更深入地了解数据结构,您可以执行以下操作:
console.log(groupedDepActivities=[0].term_activity.terms[0])
将您的项目包装在大括号中以进行登录也很有用,因为它在控制台中显示为带有名称的对象,如下所示:
console.log({groupedDepActivities})
以防万一,在展开变量时检查它们包含的内容会让您更舒服 :)
rustyBucketBay
2021-08-30