JavaScript:使用新索引在对象中添加或推送值

J. *_*Doe -3 javascript javascript-objects

我正在使用 JS 对象。我想推送一些具有定义索引(id)的值,以便我可以在 JS 对象中添加/推送它们后访问这些值。

假设这是我在 JavaScript 中创建的一个对象

var my_books = {
    1 : {
        'name' : 'Book_1',
        'price' : '100'
    },
    2 : {
        'name' : 'Book_2',
        'price' : '200'
    }
};
Run Code Online (Sandbox Code Playgroud)

现在,我想在上面创建的对象中添加以下数据

3 : {
    'name' : 'Book_3',
    'price' : '300'
}
Run Code Online (Sandbox Code Playgroud)

添加后我想使用以下行访问它。

console.log(JSON.stringify(my_books[3]['name']));
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在 JavaScript 的对象中添加此类数据。我搜索了很多,但没有代码在这方面帮助我。

请帮助。

var*_*wal 5

你可以做

my_books[3] = {
    'name' : 'Book_3',
    'price' : '300'
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您希望自动生成索引,那么objects数据结构就不适合您的要求。您可以考虑使用Arrays

例子:

my_books = [];

function newBook (name, price) {
  const newBookObject = {name, price};
  my_books.push(newBookObject);
}

newBook('book1', 100);
newBook('book2', 500);
newBook('book3', 600);

console.log(my_books);

// To iterate over it -
for (var index in my_books) {
  console.log(index, my_books[index]);
}

Run Code Online (Sandbox Code Playgroud)