我想问另一个与JS相关的问题。我需要一个javascript函数来查找和替换字符串中的多个项目。
例如:"标识符"的所有实例应替换为" ID"以及"金额"的所有实例应替换为"值"。
非常感谢提前!
Adriaan Boot
[
{identifier: '97307', amount: '2.99', currency: 'EUR', quantity: '2'},
{identifier: '113266', amount: '79.99', currency: 'EUR', quantity: '1'}
]
答案 0 :(得分:0)
你所拥有的不是一个字符串,它看起来像一个javascript对象,或者json对象。如果这是一个字符串,那么你将使用replace(oldstring,newstring)或replaceAll(oldstring,newstring)
答案 1 :(得分:0)
看起来您正在处理数组对象而不是字符串,并且想要替换对象的属性名称,您可以这样做:
for(var i = 0 ; i < myArray.length ; i++){
//create a new property with desired name
myArray[i].ID = myArray[i].identifier;
//delete old property
delete myArray[i].identifier;
myArray[i].amount = myArray[i].value;
delete myArray[i].value;
}
但是,如果您实际上在处理字符串,请考虑使用replace
函数。
答案 2 :(得分:-1)
在发布问题之前,您必须做一些研究,以避免我们给您回答您可能已经知道的问题。 顺便说一句,这个问题很简单:
var str = "[
{identifier: '97307', amount: '2.99', currency: 'EUR', quantity: '2'},
{identifier: '113266', amount: '79.99', currency: 'EUR', quantity: '1'}
]";
var res = str.replace("identifier", "ID").replace("amount", "value");
答案 3 :(得分:-1)
澄清一下:您是否尝试更改密钥名称或密钥值?
如果是后者:
您可以遍历数组,如果该对象中存在该键,则替换该值。例如:
// i will set the array you gave above to 'arr'
arr.forEach(function(s) {
if(s.identifier) {
s.identifier = 'ID';
}
if(s.amount) {
s.amount = 'value';
}
});
如果数组中的所有对象都存在'amount'和'identifier',请忽略条件if
语句。
如果您尝试替换实际的对象键/属性名称,也可以使用这些方法。我不认为那是你想说的,所以我暂时忽略它。如果那是你想要做的事情,请回复一下,我可以更新我的答案。