javascript - 使用拼接替换所有找到的项目

标签 javascript arrays loops

所以我想找到所有匹配字符串的项目并替换它们。出于某种原因,我无法让它迭代并全部替换。任何帮助,将不胜感激

const word = ['h', 'e', 'l', 'l', 'o'];
var placeholder = word.map(e => {
  return "*"
});

let letter = 'l';

word.forEach(e => {
  if (e === letter) {
    placeholder.splice(word.indexOf(letter), 1, letter);
  }
});


console.log(placeholder);

最佳答案

在回调中使用 index 参数到 forEach而不是总是使用找到字母的第一个索引。

const word = ['h', 'e', 'l', 'l', 'o'];
var placeholder = word.map(e => {
  return "*"
});

let letter = 'l';

word.forEach((e,i) => {
  if (e === letter) {
    placeholder.splice(i, 1, letter);
  }
});


console.log(placeholder);

直接使用map简单得多。

const word = ['h', 'e', 'l', 'l', 'o'];
let letter = 'l';
const res = word.map(e => letter === e ? letter: "*");
console.log(res);

关于javascript - 使用拼接替换所有找到的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67427973/

相关文章:

javascript - 如何使用 Prototype 库模拟 JavaScript 中的访问修饰符?

javascript - 如何在 Javascript 中将嵌套 json 转换为对象数组?

javascript - 如何使用 jQuery 选择所选选项的值?

python - 如何按列优先顺序显示数字序列?

javascript - IE 和 Chrome 中未定义的 JQuery javascript 参数

c# - 如何在不复制的情况下在 C# 中将一维数组的大小调整为二维数组?

javascript - 将 JSON/JS 对象转换为数组

PHP 注意,返回 "array array array"而不是值

java - 继续或中断在三元运算符中不起作用

ios - 使用循环更新重复 UILabel 的值