【问题标题】:Value is not changed in a map?地图中的值没有改变?
【发布时间】:2019-11-04 09:14:17
【问题描述】:

我更改了line[s] 的值,以删除地图外的所有;,但地图内的line[s] 仍然包含;

const keys = Object.keys(x[0]);
csv += `${keys.join(',')}\n`;

x.forEach((line) => {
  line[s] = line['s'].replace(';', '%3B')
  console.log(line.signalFormula)
  csv += `${keys.map((key) => line[key]).join(',')}\n`;
})

更新 我的代码现在看起来像这样

const keys = Object.keys(x[0]);
        csv += `${keys.join(';')}\n`;
        x.forEach((line) => {
          line[keys[2]] = line[keys[2]].split(';').join('%3B');
          console.log(line[keys[2]])
          csv += `${keys.map((key) => line[key]).join(';')}\n`;
        }

console.log(line[keys[2]]) 这给出了正确的值,但在文件中它不正确。

【问题讨论】:

  • s 是变量吗? line[s]line['s'] 是不同的东西。
  • 如果一行有多个;,您的代码只会将第一个; 替换为%3B

标签: javascript dictionary foreach scope


【解决方案1】:

如果 x 是一个对象数组,其中包含键 's' 中的一些字符串。 改变

line[s] = line['s'].replace(';', '%3B')

line['s'] = line['s'].replace(';', '%3B')

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 1970-01-01
    • 2014-12-02
    • 2016-08-02
    • 2020-10-30
    • 2011-09-05
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    相关资源
    最近更新 更多