【发布时间】:2020-06-23 20:32:36
【问题描述】:
我正在尝试从数组中的多个字符串替换某种自制变量。
稍后我会提示用户要求更换,但在第一步中我只是尝试用“测试”值(“###”)替换它。
哦,我希望它被简化(使用链式函数 - 我只是自己发现的,这就是这里的问题:D)。有人可以帮帮我吗?
到目前为止我得到了什么:
const replaceAll = (obj) => {
obj.cmds.forEach((element, index, array) => {
obj.cmds[index] = obj.cmds[index].match(/{.*?}/gmi).map((value) => {
console.log('valuex', value)
/*
// Here the user should be asked for the replacement in the future.
// const newValue = userPromp(value)
*/
return obj.cmds[index].split(value).join('###')
})
})
return obj
}
const newObj = replaceAll({
name: 'ULTRA TEST',
cmds: [
'port {port}',
'port {port} und random {random}',
'random {random} und value {value}'
]
})
console.log(newObj)
【问题讨论】:
-
你目前的结果是什么?我注意到在本地运行它时您使用 map 但您从未分配它。你可以试试:
obj.cmds[index] = obj.cmds[index].match(...... -
MM。那也不返回正确的答案。让我考虑一下。
-
哦,我看到我忘记了零件。我有这样的本地人:
obj.cmds[index] = obj.cmds[index].match(......。但我只得到一个数组中的一个数组作为返回。 :'D
标签: javascript arrays replace