【问题标题】:key-value pair undefined in javascriptjavascript中未定义的键值对
【发布时间】:2013-11-27 17:43:59
【问题描述】:

由于某种原因,我有一个这样的字符串:

"id: 123, title: something, category: science, ... "

为了制作一个包含键值对的 javascript 对象,我编写了以下方法:

function stringToMap(stringToCut){
    var map = {};
    var listOfPairs = stringToCut.split(",");
    for(var i = 0; i < listOfPairs.length; i++){
        var pair = listOfPairs[i].split(":");
        map[pair[0]] = pair[1];
    }

    return map;

}

使用点访问它很重要,而不是使用 [] 括号。 在 chrome 调试模式下,我看到了预期的对象,但是当我想访问其中一个元素时,例如:

console.log(obj.title);

我不确定...

我做错了什么?

【问题讨论】:

    标签: javascript undefined key-value


    【解决方案1】:

    这是因为你的键名中有空格:

    console.log(obj[" title"]); // "something"
    

    要解决此问题,请将您的第一个拆分更改为在 ", " 上拆分,而不是仅在 "," 上拆分:

    var listOfPairs = stringToCut.split(", ");
    

    JSFiddle demo.

    作为进一步的修复,您还需要将第二个拆分更改为在 ": " 上拆分,而不仅仅是 ":",否则您的所有值都将以空格开头。

    var pair = listOfPairs[i].split(": ");
    

    【讨论】:

    • 注意开头的空格。 console.log(obj["title"].trim());
    • 确实,空间是问题所在。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2011-10-21
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    相关资源
    最近更新 更多