【问题标题】:String won't split into array from a fetch [duplicate]字符串不会从提取中拆分为数组[重复]
【发布时间】:2020-03-04 15:31:52
【问题描述】:

我正在尝试使用 JavaScript 提取文本文件并将其转换为字符串。我得到了这个工作,但我想把那个字符串变成一个带有逗号或连字符的数组。到目前为止,这是我在 HTML 页面上将单词拆分为单独元素的内容

function title() {
  fetch('Text.txt')
    .then(response => response.text())
    .then(text => name = text)
    .then(name => name.toUpperCase());
    return(name);
};

function append(text, id) {
  var p = document.createElement('P');
  p.id = 'title' + id;
  p.innerHTML = text;
  document.getElementById('imgcont').appendChild(p);
};

function getName() {
  name = title();
  name.split("-");
  append(name[0], 1);
  append(name[1], 2);
};

文本文件将包含类似这样的内容

Fighers-Conro

我正在尝试将其附加到 2 个 HTML 元素,并且效果很好,但是每次查看输出时,我都会在第一个元素上看到字母“F”,在第一个元素上看到字母“i” html 页面中的第二个元素。我更深入地研究了它,并使用了console.log(Array.isArray(name));,它返回 False,但自制数组返回 True。

我可能犯了一个小错误,但我找不到问题所在。任何帮助将不胜感激!

【问题讨论】:

  • name.split("-") 返回一个数组,它不会在原地修改name;所以name.split('-')[0]会给你你想要的;或者您可以将结果分配给另一个变量。
  • 你不能像 fetch 这样的异步函数返回值。
  • let nameArr = name.split('-'); append(nameArr[0], 1); append(nameArr[1], 2);
  • @Ja͢ck 其实谢谢....我对此完全视而不见。
  • @Cerbrus 我能够使用上面的标题函数从文本文件中获取字符串。那时我并没有尝试拆分它,而是将其拆分为另一个函数。抱歉,但这与 fetch API 无关,因为它适用于我如何拥有它以及我需要什么。不过谢谢

标签: javascript arrays string split fetch


【解决方案1】:
.then(text => name = text)

不会拆分您的文本。它只是将其设置为不同的变量。

编辑:

您还需要将“拆分”字符串分配给变量以存储数组。

【讨论】:

  • 虽然如此,但这只是 OP 代码中问题的一小部分......
  • 如果我没有添加这个,它会为我返回 undefined。更不用说......这只是为了从我拥有的文件中获取文本。不要分开。
  • 见上面的编辑。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 2013-08-19
  • 2015-11-25
  • 2011-12-20
  • 1970-01-01
  • 2016-03-22
  • 1970-01-01
  • 2013-01-03
相关资源
最近更新 更多