【问题标题】:Can't access object property in Javascript, property key is from FileReader无法在 Javascript 中访问对象属性,属性键来自 FileReader
【发布时间】:2018-01-25 05:45:31
【问题描述】:

我在 Javascript 中使用 FileReader 来创建一个包含数据的对象。该文件本身是一个文本文件,并且该函数被配置为创建一个属性,该属性具有文件某个部分下的所有数据,该部分以括号单词开头并由换行符“\n”分割,例如:

[章节]

data, data, data

data2, data2, data2

变成:

myObject['chapter'] = ['data, data, data', 'data2, data2, data2'];

但是当我使用 Chrome 控制台(或使用 console.log)来访问 myObject['chapter'] 时,它返回未定义。使用控制台查看属性,显示该对象确实有属性,但是带了双引号?

screenshot looks like this

弄乱控制台进一步揭示了这个“章节”与其他所有章节不同。例子:

myObject['chapter'] = 2
//this creates a new property 'chapter', while "chapter" also exists.
Object.keys(myObject)[0] == 'chapter';
//evaluates to false

编辑:拼写

function drophandle(e) {
    let reader = new FileReader();
    let data = e.dataTransfer.files[0];

    reader.onload = function (event) {
        let yet = event.target.result.toString();
        let full_arr = yet.split('\n');
        let index = 'file-f'
        items[index] = [];

        for (let line of full_arr) {
            if (line.indexOf('[') != -1) {
                index = line.replace(/"/g, "").replace(/\[/g, "").replace(/\]/g, "").toLowerCase();
                items[index] = [];
                continue;
            };
            items[index].push(line);
        }
        console.log(items['general'])
        for (let t in items) {
            for (let y of items[t]) {
                append(y)
            }
        }
    }
    reader.readAsText(data, 'utf-8');
}

【问题讨论】:

  • 您的问题是什么?请粘贴您的代码(重现该问题的最小示例)。我怀疑这是一个简单/双引号的问题。可能是您没有从文件中获得您期望的密钥(例如,“\n”可能在密钥中)。也可能是 console.log 在 chrome 中不同步,并且当 chrome 决定记录它时 myObject 已更改。
  • 您注意到了吗:Object.keys(MyObject)[0] 以大写字母开头? ...
  • 抱歉,这是一个错字而不是错误。该代码应该类似于我正在编写的代码。

标签: javascript filereader


【解决方案1】:
myObject['chapter'] = 2
//this creates a new property 'chapter', while "chapter" also exists.
Object.keys(myObject)[0] == 'chapter';

是 m,不是 M

【讨论】:

    猜你喜欢
    • 2018-09-13
    • 2021-11-06
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 2017-11-17
    相关资源
    最近更新 更多