use*_*235 4 javascript arrays string loops for-loop
我想循环一个字符串作为键/值对.数据以字符串形式给出(我使用的是jstorage插件).
我试图将字符串拆分为数组,但它没有返回正确的键/值.
例
"color":"#000000", "font":"12px", "background":"#ffffff",
Run Code Online (Sandbox Code Playgroud)
如果你总是得到这样的字符串,即双引号中的键和值,你可以添加{...}到字符串并将其解析为JSON:
// remove trailing comma, it's not valid JSON
var obj = JSON.parse('{' + str.replace(/,\s*$/, '') + '}');
Run Code Online (Sandbox Code Playgroud)
如果没有,分割字符串也很容易,假设,并且:不能出现在键或值中:
var obj = {},
parts = str.replace(/^\s+|,\s*$/g, '').split(',');
for(var i = 0, len = parts.length; i < len; i++) {
var match = parts[i].match(/^\s*"?([^":]*)"?\s*:\s*"?([^"]*)\s*$/);
obj[match[1]] = match[2];
}
Run Code Online (Sandbox Code Playgroud)