Как назначить значения объекта из массива в Javascript - PullRequest
1 голос
/ 03 мая 2020

Я создал конструктор для объекта под названием «Книга». Я захватил все значения из формы в массиве. Теперь я хочу присвоить значения этого массива этому конструктору. Тем не менее, я застрял, потому что я не могу найти то, что я ищу в Google или StackOverflow.

Вот мой код:

let formArray = [];
document.querySelectorAll('input[type="text"]').forEach(function (node) {
    formArray.push(node.value);
});

let newBook = new Book();
let idx = 0;
Object.keys(newBook).forEach(function (k) {
    k = formArray[idx];
})

Однако, это мой log:

Book {title: undefined, author: undefined, nPages: undefined, isRead: undefined}
title: undefined
author: undefined
nPages: undefined
isRead: undefined

Пожалуйста, помогите мне разобраться!

Ответы [ 2 ]

2 голосов
/ 03 мая 2020

Это то, как вы можете настроить что-то вроде того, что вам нужно, для простоты я включил только два свойства.

class Book {
  constructor({ title, author }) {
    this.title = title
    this.author = author
  }
}

const values = {}
document.querySelectorAll('input[type="text"]').forEach(function (node) {
    values[node.name] = node.value
});

console.log(new Book(values))
<input type="text" name="title" value="The Never Ending Story" />
<input type="text" name="author" value="Michael Ende" />
0 голосов
/ 03 мая 2020

let formArray = [];
document.querySelectorAll('input[type="text"]').forEach(function (node) {
    formArray.push(node&&node.value);
});

let newBook = new Book();
let idx = 0;
Object.keys(newBook).forEach(function (k) {
    k = formArray[idx];
})

попробуйте это, я думаю js выполнение кода перед node.value

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