Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JavasScript函数查找和替换多个项_Javascript_Function - Fatal编程技术网

Javascript JavasScript函数查找和替换多个项

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

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

例如:“identifier”的所有实例应替换为“ID”,而“amount”的所有实例应替换为“value”

非常感谢

阿德里安靴

[ 
  {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()中传递文本时是否显示文本?)