【问题标题】:Replace array values in string and make new string as per the values替换字符串中的数组值并根据值创建新字符串
【发布时间】:2021-12-05 08:23:30
【问题描述】:

我有一个数组,它是范围和字符串,它是测试。现在我想用 {q1} 替换我的范围数组值,并用它的值替换 {w1}。 我为我的场景添加了预期输出

let range = [25, 50, 100, 125];
let w1 = 2
let test = '{w1} + {q1}'

预期输出

let string1 = 2 + 25;
let string2 = 2 + 50;
let string3 = 2 + 100;
let string4 = 2 + 125;

【问题讨论】:

  • 为什么不通过简单的循环来处理?

标签: javascript arrays string


【解决方案1】:
const range = [25, 50, 100, 125];
const w1 = 2;
const result = range.map(x=> w1.toString() + " + " + x.toString());

const range = [25, 50, 100, 125];
  const w1 = 2;
  const result = range.map((x) => w1.toString() + " + " + x.toString());
  console.log("res", result);

【讨论】:

    【解决方案2】:

    您可以使用maparray destructuring assignment 轻松实现此目的。

    let range = [25, 50, 100, 125];
    let w1 = 2;
    
    const [string1, string2, string3, string4] = range.map(r => `${w1} + ${r}`);
    
    console.log(string1);
    console.log(string2);
    console.log(string3);
    console.log(string4);

    【讨论】:

      【解决方案3】:

      您可以像这样使用String.prototype.replace() 替换字符串部分:

      const range = [25, 50, 100, 125];
      const w1 = 2;
      range.map(value => '{w1} + {q1}'.replace('{w1}', w1).replace('{q1}', value));
      // ['2 + 25', '2 + 50', '2 + 100', '2 + 125']
      

      但这是一种不好的做法。像这样通过Template literals 使用字符串插值要好得多:

      const range = [25, 50, 100, 125];
      const w1 = 2;
      range.map(value => `${w1} + ${value}`);
      // ['2 + 25', '2 + 50', '2 + 100', '2 + 125']
      

      【讨论】:

        【解决方案4】:

        实现此目的的一种简单方法是循环遍历 range 数组并将所需的字符串推送到新数组。

        var range = [25, 50, 100, 125], w1 = 2, strings = [];
        
        for(index of range.keys()){ 
          strings.push(`${w1} + ${range[index]}`);
          console.log(`string${index+1}: ${strings[index]}`);
        }

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-11-02
          • 2020-10-23
          • 2021-11-30
          • 2021-08-15
          • 1970-01-01
          • 2019-06-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多