Как обновить объект в JavaScript - PullRequest
0 голосов
/ 12 июня 2019

У меня есть структура объекта, как показано ниже.

    bookmarks:""
    defaultcompany:"26740"
    defaultmarkets:defaultmarket:Array(6)
    0:{company: "3569", market: "29"}
    1:{company: "26740", market: "25"}
    2:{company: "2677", market: "3"}
    3:{company: "19878", market: "7"}
    4:{company: "1063", market: "1"}
    5:{company: "28215", market: "23"}
    length:6
    spotlightdays:"3"
    userid:"11130286"

Как обновить объект в javascript, чтобы я мог добавить один или несколько элементов массива в defaultMarket Array, как показано ниже.Мне нужно сохранить исходные значения и добавить новые?Также существующие элементы массива также могут быть изменены.

    bookmarks:""
    defaultcompany:"26740"
    defaultmarkets:defaultmarket:Array(7)
    0:{company: "3569", market: "29"}
    1:{company: "26740", market: "25"}
    2:{company: "2677", market: "8"}
    3:{company: "19878", market: "7"}
    4:{company: "1063", market: "35"}
    5:{company: "28215", market: "23"}
    6:{company: "67890",market:"45"
    length:7
    spotlightdays:"3"
    userid:"11130286"

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Я считаю, что эти две функции будут делать то, что вы хотите:

var obj = {
  bookmarks: "",
  defaultcompany: "26740",
  defaultmarkets: {
    defaultmarket: [
      {company: "3569", market: "29"},
      {company: "26740", market: "25"},
      {company: "2677", market: "3"},
      {company: "19878", market: "7"},
      {company: "1063", market: "1"},
      {company: "28215", market: "23"}
    ]
  },
  length: 6,
  spotlightdays: "3",
  userid: "11130286"
}

// Add an object to the defaultmarket array
const addObject = newObj => obj.defaultmarkets.defaultmarket.push(newObj)

// Edit a market value in the defaultmarket array by the company value
const editMarketByCompany = (company, newValue) => {
  var arr = obj.defaultmarkets.defaultmarket
  arr[arr.findIndex(el => el.company === company)].market = newValue
}

addObject({company: "67890", market: "45"})
editMarketByCompany("2677", "8")

console.log(obj)
0 голосов
/ 12 июня 2019

Это должно быть так же просто, как obj.defaultmarkets.defaultmarket.push(elmToAdd), если данный объект let obj = { bookmarks:"" defaultcompany:"26740" defaultmarkets:defaultmarket:Array(6) 0:{company: "3569", market: "29"} 1:{company: "26740", market: "25"} 2:{company: "2677", market: "8"} 3:{company: "19878", market: "7"} 4:{company: "1063", market: "35"} 5:{company: "28215", market: "23"} 6:{company: "67890",market:"45" length:6 spotlightdays:"3" userid:"11130286"}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...