创建对象数组后如何更新对象的键值?JavaScript



我得到了一些简单的东西,但我显然太愚蠢了。

我的HTML中有两个输入。 第一个是公司,第二个是股份。我正在与这些公司一起创建UL。问题是,当我输入数组中已经存在的公司名称时,我想这样做,我只想更新该公司的股份。我将分享到目前为止我制作的代码。

<body>
<form>
<input id="company" placeholder="Company" type="text" />
<input id="input" placeholder="Shares" type="number" />
<button id="btn">Add</button>
</form>
<ul id="content"></ul>
</body>

JavaScript 代码在这里:

const button = document.getElementById("btn");
const content = document.getElementById("content");
let companiesArray = [];
function myCompany(e) {
e.preventDefault();
const inputShares = document.getElementById("input").value;
const inputCompany = document.getElementById("company").value;
let obj = {
company: inputCompany,
shares: inputShares,
};
for (const item of companiesArray) {
if (item.company === obj.company) {
//TO DO
console.log("Match");
return;
}
}
const li = document.createElement("li");
content.appendChild(li).textContent = `${obj.company} - ${obj.shares}`;
companiesArray = [...companiesArray, obj];
console.log(companiesArray);
}
button.addEventListener("click", myCompany);

所以再一次,当我输入一个独特的公司 => li 是在 ul 中创建的。如果我进入同一家公司,我只想更新股票而不添加新的 li。

if (item.company === obj.company) {
//TO DO
const list = document.getElementsByTagName('li')
const element = [...list].filter((item) => item.innerText.split(" ")[0] === obj.company)[0]
element.innerText = `${obj.company} - ${obj.shares}`
console.log("Match");
return;
}

希望这对:)有所帮助

最新更新