我想将引号内的所有字符串值都推送到数组中。
Database = {
"English": "forget password",
"zh-CN": "忘记密码",
}
输出应该是
extractedStrings = ["English", "forget password", "zh-CN", "忘记密码"]
答案 0 :(得分:4)
使用Object.entries
和Array.prototype.concat
,如下所示
var extractedStrings = [].concat(...Object.entries(Database));
对于Internet Exploder和Opera,Object.entries
答案 1 :(得分:1)
我猜你应该遍历对象的键并将键和值推送到数组中。比使用 Object.entries 和扩展语法更兼容。
var database = { "English": "forget password", "zh-CN": "忘记密码", }
var keyValues = Object.keys(database).reduce(function(acc, key) {
acc.push(key, database[key]);
return acc;
}, [])
console.log(keyValues)

您还可以使用正则表达式版本来匹配任何不属于JSON语法的字符。以下是一个有点天真的实现,我认为以上是更好的:
var database = { "English": "forget password", "zh-CN": "忘记密码", }
console.log(JSON.stringify(database).match(/[^\":{},]+/g))

答案 2 :(得分:1)
var obj = { "English": "forget password", "zh-CN": "忘记密码",};
var arr=[];
for(var p in obj){
arr.push(p);
arr.push(obj[p]);
}
console.info(arr);
你可以试试这个。
答案 3 :(得分:0)
Database = {
"English": "forget password",
"zh-CN": "忘记密码",
"other-language": "embedded \"quotes\""
}
a = JSON.stringify(Database);
words = a.match(/"(.*?)"/g);
console.log(words);