JavasScript函数查找并替换多个项目

时间:2016-08-04 20:27:20

标签: javascript function

我想问另一个与JS相关的问题。我需要一个javascript函数来查找和替换字符串中的多个项目。

例如:"标识符"的所有实例应替换为" ID"以及"金额"的所有实例应替换为"值"。

非常感谢提前!

Adriaan Boot

[ 
  {identifier: '97307', amount: '2.99', currency: 'EUR', quantity: '2'},
  {identifier: '113266', amount: '79.99', currency: 'EUR', quantity: '1'} 
]

4 个答案:

答案 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语句。

如果您尝试替换实际的对象键/属性名称,也可以使用这些方法。我不认为那是你想说的,所以我暂时忽略它。如果那是你想要做的事情,请回复一下,我可以更新我的答案。