max*_*ell 0 javascript arrays json
深度嵌套在 JSON 对象中,我有属性value.
actions:
[ { name: 'InviteUser',
type: 'button',
value: '[Brian, Timoney, brian@someemaildomain.com,United States, DEM, edit me, 1580333]' } ],
callback_id: 'market_invite',
Run Code Online (Sandbox Code Playgroud)
从嵌套的 JSON 中取出,它看起来像:
value: '[Brian, Timoney, brian@someemaildomain.com,United States, DEM, edit me, 1580333]'
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以将其转换为数组?我正在寻找的数组输出是:
["Brian", "Timoney", "brian@someemaildomain.com", "United States", "DEM", "edit me", "1580333"]
Run Code Online (Sandbox Code Playgroud)
很难相信我会问这个问题,因为它看起来非常简单,但是经过一段时间的尝试,比如Array.from()and之类的变化JSON.parse(),并试图在堆栈溢出上找到重复的问题,我感到很困惑。
您可以简单地使用字符串 API。根据您对输入中可能出现的字符(尤其是逗号)的确定程度,以下内容可能就足够了:
function valueStringToArray(valueString) {
return valueString.substr(0, valueString.length - 1).substr(1).split(',');
}
Run Code Online (Sandbox Code Playgroud)
小智 5
var obj = {
actions: [{
name: 'InviteUser',
type: 'button',
value: '[Brian, Timoney, brian@someemaildomain.com,United States, DEM, edit me, 1580333]'
}],
callback_id: 'market_invite'
};
var arr = obj.actions[0].value.replace(/\[|\]/g, "").split(",").map(str => str.trim());
console.log(arr);Run Code Online (Sandbox Code Playgroud)