返回对象数组的DOM值

时间:2019-04-20 16:04:28

标签: javascript arrays loops object

我有一个对象数组-每个对象包含多个值。

由于我有新对象,所以将它们保存在数组中。但是,我想在我的DOM中发布此数组和新对象。这个想法是我的DOM列出了我数组中的所有对象,并且每次创建一个新对象时,它都会添加到我的数组中并在我的DOM中进行更新。

我很难理解如何在DOM中发布它。

我应该有2个循环吗? -1将数据另存为对象,并在触发新对象时将其添加到我的数组中 -1在DOM中发布我的对象数组(但不是每次都重新生成整个表,而不是仅使用新对象“更新”吗?)

我在思考过程中遇到了麻烦,因此,如果您有建议,他们将非常受欢迎!

到目前为止,我有:

1-对象数组的声明

2-检索输入数据并将其分配给新对象的功能

3-将对象推入数组的功能

4-单击时,功能: 调用函数创建对象 调用函数将对象添加到表中 将对象表转换为要在DOM中发布的字符串

我对精确创建循环的位置有些困惑。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

根据您的描述,您正在尝试执行类似的操作。

// Declare array
const arr = [];

// Cache elements
const input = document.querySelector('input');
const button = document.querySelector('button');
const result = document.querySelector('#result');

// Assign event listener to the button
button.addEventListener('click', handleClick, false);

// When the button is clicked..
function handleClick() {

  // Push the new value/object to the array
  arr.push(input.value);

  // Call the function to update the page
  updatePage();
}

function updatePage() {

  // `map` over the data in the array to return an
  // array of HTML strings, and join them up
  const html = arr.map(el => `<p>${el}</p>`).join('');

  // Set the innerHTML of the result element as the
  // string `html`
  result.innerHTML = html;
}
p { color: blue; border: 1px solid red;}
<input />
<button>Add</button>
<div id="result"></div>

实际上,您只需要一个循环即可创建要添加到页面的HTML。