开发者问题收集

无法在 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