简体   繁体   English

在 JavaScript 中的 Object 中插入一个数组

[英]Insert an array in an Object in JavaScript

I have a collection of data which is like this:我有一个这样的数据集合:

const listItem = [
    {name:'Patrick star',id:"1",costs:[{name:'Read Book'},{name:'Drink water'}]},
    {name:'Gallileo',id:"2",costs:[{name:'Read Book'},{name:'Drink water'},{name:'Walking'}]},
    {name:'Einsten',id:"3",costs:[{name:'Read Book'},{name:'Drink water'}]},
    {name:'Peterson',id:"4",costs:[{name:'Read Book'},{name:'Drink water'}]},
    {name:'Schwarzenneger',id:"5",costs:[{name:'Read Book'},{name:'Drink water'}]},
    {name:'Dostoyevsky',id:"6",costs:[{name:'Read Book'},{name:'Drink water'}]}
]

I want to make an array like this.我想做一个这样的数组。 Now i have我现在有

var arr = []
var costs = [{name: "20"}]
var category = {id: 3, name: "envelope"}

I need to put the costs array and category in a single array.我需要将costs数组和category放在一个数组中。 Here's the wanted output:这是通缉的output:

[{name:'envelope',id:"3",costs:[{name: "20"}]}]

How can i do that?我怎样才能做到这一点?

You can use spread operator like this:您可以像这样使用扩展运算符:

var costs = [{name: "20"}]
var category = {id: 3, name: "envelope"}
var arr = [{costs: [...costs], ...category}]

Try:尝试:

let items = {"name": category['name'], "id": category['id'], "costs": costs}
arr.push(items)

Another simpler method:另一种更简单的方法:

arr.push({"costs": costs, ...category})

and append items in a loop if necessary和 append 项目在必要时循环

Result:结果:

[{name:'envelope',id:3,costs:[{name: "20"}]}]

You have to put costs and category in a single object and then you can put that object into Array like this:您必须将成本和类别放入单个 object 中,然后您可以将 object 放入数组中,如下所示:

var arr = []
var costs = [{name: "20"}]
var category = {id: 3, name: "envelope"}
arr.push({ costs, ...category });

Array will look like this after push:推入后数组将如下所示:

arr = [
          {
              costs : [{name: "20"}],
              id: 3, 
              name: "envelope"
          }
      ]

I hope this solves your problem我希望这能解决你的问题

<script>
const listItem = [
    {name:'Patrick star',id:"1",costs:[{name:'Read Book'},{name:'Drink water'}]},
    {name:'Gallileo',id:"2",costs:[{name:'Read Book'},{name:'Drink water'},{name:'Walking'}]},
    {name:'Einsten',id:"3",costs:[{name:'Read Book'},{name:'Drink water'}]},
    {name:'Peterson',id:"4",costs:[{name:'Read Book'},{name:'Drink water'}]},
    {name:'Schwarzenneger',id:"5",costs:[{name:'Read Book'},{name:'Drink water'}]},
    {name:'Dostoyevsky',id:"6",costs:[{name:'Read Book'},{name:'Drink water'}]}
]

var arr = []
var costs = [{name: "20"}]
var category = {id: 3, name: "envelope"}

category['costs']=costs


// Just to Verify
console.log(JSON.stringify(listItem)) //[{"name":"Patrick star","id":"1","costs":[{"name":"Read Book"},{"name":"Drink water"}]},{"name":"Gallileo","id":"2","costs":[{"name":"Read Book"},{"name":"Drink water"},{"name":"Walking"}]},{"name":"Einsten","id":"3","costs":[{"name":"Read Book"},{"name":"Drink water"}]},{"name":"Peterson","id":"4","costs":[{"name":"Read Book"},{"name":"Drink water"}]},{"name":"Schwarzenneger","id":"5","costs":[{"name":"Read Book"},{"name":"Drink water"}]},{"name":"Dostoyevsky","id":"6","costs":[{"name":"Read Book"},{"name":"Drink water"}]}]

listItem.push(category)  // this is how you insert data in exiting object

console.log(JSON.stringify(listItem))//[{"name":"Patrick star","id":"1","costs":[{"name":"Read Book"},{"name":"Drink water"}]},{"name":"Gallileo","id":"2","costs":[{"name":"Read Book"},{"name":"Drink water"},{"name":"Walking"}]},{"name":"Einsten","id":"3","costs":[{"name":"Read Book"},{"name":"Drink water"}]},{"name":"Peterson","id":"4","costs":[{"name":"Read Book"},{"name":"Drink water"}]},{"name":"Schwarzenneger","id":"5","costs":[{"name":"Read Book"},{"name":"Drink water"}]},{"name":"Dostoyevsky","id":"6","costs":[{"name":"Read Book"},{"name":"Drink water"}]},{"id":3,"name":"envelope","costs":[{"name":"20"}]}]
</script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM