#javascript #arrays #object #push
#язык JavaScript #массивы #объект #толкать
Вопрос:
У меня есть следующий код, в котором я пытаюсь добавить некоторые объекты в массив с двумя существующими объектами с помощью функции, но он всегда возвращает неопределенное значение, и я не знаю, как его решить.
let compte = { iban: "ES79 2100 0813 6101 2345 6789", saldo_inicial: 15000, operacions: [{ quantitat: 1200, concepte: 'X', data_operacio: new Date(Date.now()), }, { quantitat: -100, concepte: 'X', data_operacio: new Date(Date.now()), }], afegir_operacio: function(quantitat, concepte, data_operacio) { compte.operacions.push({ quantitat: quantitat, concepte: concepte, data_operacio: data_operacio }); console.log(compte.operacions); } } compte.afegir_operacio({ quantitat: -100, concepte: "Factura", data_operacio: "3-10-2021" }); compte.afegir_operacio({ quantitat: -50, concepte: "Compra" });
Комментарии:
1. Я удалил тег Java, так как он кажется не связанным с вопросом.
2.
compte.operacions
является массивом, он не имеет свойстваquantitat
илиconcepte
илиdata_operacio
. Элементы внутри этого массива обладают этими свойствами. Но неясно, кто из них (если таковые имеются?) следует использовать. Или вместо этого следует просто использовать параметры функций?3. Вы должны использовать аргументы, которые вы передаете в функцию!
Ответ №1:
Вы получаете undefined
, потому что данные, которые вы пытаетесь добавить, — это не то, что вы передаете функции. Взгляните на исправления. Если вы не передадите значение для данного свойства, вы получите undefined
значение для этого свойства, если не определите default
значение:
let compte = { iban: "ES79 2100 0813 6101 2345 6789", saldo_inicial : 15000, operacions: [{ quantitat: 1200, concepte: 'X', data_operacio: new Date(Date.now()), }, { quantitat: -100, concepte: 'X', data_operacio: new Date(Date.now()), }], afegir_operacio: function ({quantitat, concepte, data_operacio = "default_value"}) { this.operacions.push({quantitat: quantitat, concepte: concepte, data_operacio: data_operacio}); console.log(this.operacions); } } compte.afegir_operacio({ quantitat: -100 , concepte: "Factura", data_operacio: "3-10-2021" }); compte.afegir_operacio({ quantitat: -50, concepte: "Compra" });