如何使用JavaScript替换数组中的多个条目

时间:2019-06-26 19:40:58

标签: javascript html json regex stringify

我有一个程序将数据存储在字符串数组中。 我使用特殊字符(某种人类可读的字符)从数组元素中检索数据。我使用JS中的.match函数来做到这一点。

var newAddress =siteinfo[selectedRecord].match(",siteAddr:(.*),siteLoc:")[1];

我有一些这样的字段存储在数组中,以便存储不同类别的信息。 我正在尝试使该程序允许我一次替换多个值。 我尝试使用.replace函数,但知道它的局限性,即仅在字符串的第一部分被更改的情况下创建新字符串。

siteinfo[selectedRecord]=stringifiedData.replace(newSite,projectName);
localStorage.setItem("sites", JSON.stringify(siteinfo));
var stringifiedData = JSON.stringify(siteinfo[selectedRecord]);

我尝试研究正则表达式和其他示例,以了解如何一次替换多个variabel。例如我想为“ newAddress”和其他变量(例如“ newLocation”和“ newSite”)中的其他变量更新适当的数组元素。

我不确定如何实现我的目标,但是通过一次仅更新数组的一部分来对我进行一定程度的更新,这在数组中增加了很多反斜杠,这远非理想。 到目前为止,这是我一直在做的事情:

var stringifiedData = JSON.stringify(siteinfo[selectedRecord]);
siteinfo[selectedRecord]=stringifiedData.replace(newLocation,location);
localStorage.setItem("sites", JSON.stringify(siteinfo));

var stringifiedData = JSON.stringify(siteinfo[selectedRecord]);
siteinfo[selectedRecord]=stringifiedData.replace(newPlantNr,plantNumer);
localStorage.setItem("sites", JSON.stringify(siteinfo));

var stringifiedData = JSON.stringify(siteinfo[selectedRecord]);
siteinfo[selectedRecord]=stringifiedData.replace(newLocation,location);
localStorage.setItem("sites", JSON.stringify(siteinfo));

我一直在从HTML页面调用该函数,并注意到我收到一条消息,说我的本地存储配额已超出,例如 无法在“存储”上执行“ setItem”: ,Chrome正在显示。 确实没有那么多数据,但是当我查看使用当前方法存储的数据时,由于常量JSON.stringify操作存储了每个单独的更改,因此会存储很多反斜杠。 下图显示仅运行一次更新功能后的问题。

enter image description here 我非常感谢您提供一些帮助,可以立即替换选定数组元素中的所有数据。 谢谢大家!

0 个答案:

没有答案