gpt4 book ai didi

javascript - JS迭代对象数组并替换字符串中的值

转载 作者:行者123 更新时间:2023-11-30 14:39:25 24 4
gpt4 key购买 nike

我有一组正在使用的 javascript 对象。 key 是动态生成的,数量未知。

我正在尝试遍历对象并替换其值中的一段数据。

下面是一个例子:

var obj = [{
name: 'Joe',
age: 21,
randomCol1: 'Blah<br>Blah<br>Blah',
randomCol2: 'Blah<br>Blah<br>Blah',
randomCol3: 'Blah<br>Blah<br>Blah'
},
{
name: 'Bob',
age: 25,
randomCol1: 'Blah<br>Blah<br>Blah',
randomCol2: 'Blah<br>Blah<br>Blah',
randomCol3: 'Blah<br>Blah<br>Blah'
}]


for (var key in obj) {
if (obj.hasOwnProperty(key)) {
obj[key].replace(/<br>/g,'\r\n')
}
}

在对象中,我试图替换 <br>\r\n .列名并不总是已知的。

我应该通过循环还是某种类型的映射来执行此操作?只需要先转换这些数据,然后再将其传递到我需要使用换行符的 excel 导出。

最佳答案

Should I be doing this through a loop or some type of mapping?

是的,你确实需要一个循环。一种方法是结合使用两者 -

  • 一个 map 用于遍历数组并返回新数组
  • map 中的for 循环遍历对象中的所有属性

工作片段:

var objArray = [{
name: 'Joe',
age: 21,
randomCol1: 'Blah<br>Blah<br>Blah',
randomCol2: 'Blah<br>Blah<br>Blah',
randomCol3: 'Blah<br>Blah<br>Blah'
},
{
name: 'Bob',
age: 25,
randomCol1: 'Blah<br>Blah<br>Blah',
randomCol2: 'Blah<br>Blah<br>Blah',
randomCol3: 'Blah<br>Blah<br>Blah'
}
];

var newObjArray = objArray.map(function(obj) { // loop through array

for (var key in obj) { // loop through object properties

if (typeof obj[key] === 'string') { // only if the value is a string type

obj[key] = obj[key].replace(/<br>/g, '\r\n'); // same logic as you were using before

}

}

return obj;
});

console.log(newObjArray);

注意:如果您不想更改原始输入数组而是生成一个新的结果数组,请使用 map。否则,使用 forEach

关于javascript - JS迭代对象数组并替换字符串中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49909995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com