【问题标题】:Replace value of an element in an array of objects替换对象数组中元素的值
【发布时间】:2016-07-20 07:35:57
【问题描述】:

我有一个对象数组。如果我执行 console.log,我会看到这些数据。

[Object,Object,Object]
0: Object
  Name: Ria
  Age: 27
  Job: Analytics & Review

1: Object
  Name: Brian
  Age: 23
  Job: Admin

2: Object
  Name: Rick
  Age: 32
  Job: Analytics & Review

正如你在 Job 部分看到的,我有 & 符号。我想用& 替换那个&,因为html 不允许& 直接通过ajax,因为它是一个保留实体。

有人可以告诉我如何将 & 替换为 & 存在的任何地方。

【问题讨论】:

  • 抱歉,我们看不到你想用什么替换 & (你必须把它放在坟墓标记里 ` 这样我们才能看到它),到目前为止你尝试了什么?跨度>
  • 您能否提供您希望如何使用此对象的示例,并说明为什么应该对& 进行编码?

标签: javascript html arrays object


【解决方案1】:

你可以替换它

var data = [{ Name: 'Ria', Age: 27, Job: 'Analytics & Review'}, 
            { Name: 'Brian',  Age: 23,  Job: 'Admin'}, 
            { Name: 'Rick', Age: 32, Job: 'Analytics & Review'}]; 

data.forEach(function(currentValue, index, array) { 
    array[index] = JSON.parse(JSON.stringify(array[index]).replace('&', '&amp')); 
});

【讨论】:

  • 为什么需要JSON.parse(JSON.stringify(
  • @Grundy 因为替换方法...您只能使用字符串替换。如果你想在它们存在的地方替换'&',你必须用字符串来做。之后,您需要将字符串解析为 json 并替换数组中的旧对象。
  • 那么,如果需要的话,为什么不直接转换成字符串,或者如果currentValue srting 就做替换?
  • @Grundy currentValue 不是字符串。它是一个对象。要将对象转换为所需的字符串,请使用JSON.stringify 方法。你可以用currentValue代替array[index]没关系。
【解决方案2】:

想法是先convert your entire array of object into string,然后use regex to replace the symbol,然后从字符串中解析回对象数组。试试这个。

var newArray = JSON.parse(JSON.stringify(array).replace(/&/g,'&amp'));

【讨论】:

    猜你喜欢
    • 2018-08-09
    • 2016-06-30
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 2020-01-16
    • 2021-01-22
    相关资源
    最近更新 更多