You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从文本文件读取数据并转换为二维数组(Svelte场景)

修正方案

你的问题出在文本分割方式不对,当前用split('\n\n')是按空行分割,但你的文本里没有空行,只有换行分隔的条目,而且还需要把每行拆分成年份和名字两个元素。

修正后的完整代码如下:

<script>
    let text;
    let items = [];
    import { onMount } from 'svelte';
    onMount(() => {
        loadItems();
    });

    const loadItems = async () => {
        // 注意:你提到的文件是text.dta,这里要和实际文件名对应,当前代码里写的是data.txt
        const response = await fetch('data.txt');
        text = await response.text();
        // 1. 按换行分割(兼容Windows的\r\n和Unix的\n)
        const lines = text.split(/\r?\n/);
        // 2. 过滤空行,再把每行拆分为年份和名字,年份转成数字类型
        items = lines
            .filter(line => line.trim() !== '')
            .map(line => {
                const [year, name] = line.split(/\s+/);
                return [Number(year), name];
            });
    };
</script>

{#each items as [year, name], index}
    <p>第{index+1}条:年份 {year},姓名 {name}</p>
{/each}

关键调整说明:

  • 替换split('\n\n')为split(/\r?\n/),正确将每行内容拆分为数组元素
  • 用filter过滤掉文件末尾可能存在的空行
  • 用split(/\s+/)分割每行内容,兼容多个空格的情况,同时把年份转为数字(如果不需要数字类型,去掉Number()即可)
  • 遍历数组时直接解构元素,让渲染逻辑更直观

内容的提问来源于stack exchange,提问作者Pick Avana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:55:18