Javascript JavasScript函数查找和替换多个项
我想问另一个与JS相关的问题。我需要一个javascript函数来查找和替换字符串中的多个项 例如:“identifier”的所有实例应替换为“ID”,而“amount”的所有实例应替换为“value” 非常感谢 阿德里安靴Javascript JavasScript函数查找和替换多个项,javascript,function,Javascript,Function,我想问另一个与JS相关的问题。我需要一个javascript函数来查找和替换字符串中的多个项 例如:“identifier”的所有实例应替换为“ID”,而“amount”的所有实例应替换为“value” 非常感谢 阿德里安靴 [ {identifier: '97307', amount: '2.99', currency: 'EUR', quantity: '2'}, {identifier: '113266', amount: '79.99', currency: 'EUR', qu
[
{identifier: '97307', amount: '2.99', currency: 'EUR', quantity: '2'},
{identifier: '113266', amount: '79.99', currency: 'EUR', quantity: '1'}
]
这里没有字符串,它看起来像javascript对象或json对象。如果这是一个字符串,那么您可以使用replace(oldstring,newstring)或replaceAll(oldstring,newstring)在发布问题之前,您必须进行一些研究,以避免我们给您可能已经知道的答复。 顺便说一句,这个问题很简单:
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");
澄清:您是在尝试更改密钥名称还是密钥的值 如果后者: 您可以遍历数组,如果该对象中存在键,则替换该值。例如:
// 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';
}
});
如果数组中的所有对象上都存在特定的“金额”和“标识符”,请忽略条件If
语句
如果您试图替换实际的对象键/属性名,也有一些方法可以做到这一点。我不认为这是你想说的,所以我暂时不理会。如果您正试图这样做,请回复,我可以更新我的答案。如果您正在处理数组对象而不是字符串,并且希望替换对象的属性名,您可以这样做:
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;
}
for(var i=0;i
如果您实际上是在处理字符串,请考虑使用<代码>替换< /代码>函数。
OP不使用字符串;它是一个物体。replace()
方法只存在于String
上。并不是因为它看起来像一个对象,所以它实际上是一个对象。正如OP所说,它是一个字符串,我们可以把它当作一个字符串,然后使用replace。如果OP真的给了我们一个对象数组,那就是我们所认为的。OP似乎是新的,可能更容易将字符串与其他数据类型混淆,或者输入不清楚。我想我们都是对的。让OP试试看谁配得上他的绿十字:)OP在字符串中指定了一个替换函数。如果您提供了对象/数组的代码,请注意。请告诉我们:您的变量真的是字符串还是对象?(要检查:在alert()中传递文本时是否显示文本?)