javascript中未定义键值对
key-value pair undefined in javascript
由于某种原因,我有一个字符串如下:
"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);
我没有定义。。。
我做错了什么?
这是因为您的密钥名称中有一个空格:
console.log(obj[" title"]); // "something"
要解决此问题,请将第一次拆分更改为在", "
上拆分,而不是仅在","
:上拆分
var listOfPairs = stringToCut.split(", ");
JSFiddle演示。
作为进一步的修复,您还需要将第二次拆分更改为在": "
上拆分,而不仅仅是在":"
上拆分,否则所有值都将以空格开头。
var pair = listOfPairs[i].split(": ");
相关文章:
- JavaScript-获取数据属性的值返回未定义的值
- 正在数组中存储键值对
- 如何将新的键/值对元素添加到现有数组
- 在键值对中对求和值进行下划线
- JavaScript/jQuery JSON数组问题-值为未定义
- 返回由键/值对定义的数组
- asp.net ajax属性值timestamp未定义
- 在url参数javascript中存储键值对列表
- 将数组转换为键值对
- jQueryAJAX-将额外的键/值对推送到序列化的$_POST数组中
- 使用jQuery从ajax调用访问键值对
- 将动态键值对传递给函数
- d3使用键值对对对多个值的数据进行分组
- JS在封装对象中查找键值对
- 从html标记格式的字符串中提取键值对
- JavaScript 在函数中声明键值对
- Javascript:添加键值对文字,给出未定义的结果
- javascript中未定义键值对
- 如何在另一个键/值对中使用定义的键
- Angular-ui bootstrap提前输入转义键导致输入字段值变为未定义