你好,我有一个空数组,然后我将对象推入内部,但是没有更新,它又回到了空。这在node.js上。我需要作为第一个参数-从推荐行中对数组执行操作的三个字符串之一:'add'将新项添加到数组,'delete'删除frm数组和'update'进行更新数组。第二个论点是书名,第三个论点的作者和最后一页。
let arrayOfBooks = [];
// Assign places to the array
let whichArgument = process.argv[2]
let name = process.argv[3];
let author = process.argv[4];
let pages = Number(process.argv[5]);
// Function constructor
function Book(name,author,pages) {
this.name = name;
this.author = author;
this.pages = pages;
}
// Add function
const addBook = (arrayOfBooks)=> {
arrayOfBooks.push(new Book(name, author, pages));
return arrayOfBooks
}
let result = addBook(arrayOfBooks);
答案 0 :(得分:0)
您的方法有效,但是也许您通过对数组和params使用相同的名称来丢失引用。但是无论如何,由于方法.push
不会返回更新后的数组,而只是修改了相同的数组实例,因此您无需返回推送的数组,只需使用它即可。
const arrayOfBooks = [
{book: 1},
{book: 2},
{book: 3},
{book: 4},
]
const addBook = (list, book) => {
list.push(book)
}
addBook(arrayOfBooks, {book: 5, isTheNewOne: true})
const result = arrayOfBooks
console.log(result)
// Array with 5 elements now
参见fiddle