我想映射以下JSON结构并将其转换为简单字符串数组,但在映射时遇到未定义的错误。
JSON结构:
/?source=${context.resourcePath}
尝试这样映射:
var yourArray = [
{
"options": [
{
'id':1,
'name':'All'
},{
'id':2,
'name':'Javascript'
},{
'id':2000,
'name':'Ruby'
}
]
}
];
注意:按照此示例How do I convert a javascript object array to a string array of the object attribute I want?
答案 0 :(得分:0)
您在代码中遇到的两个问题
var newArray = yourArray.map( function( el ){
el.options.map( function( eln )
。yourArray.options
,您需要使用索引或您将函数调用作为参数的el
进行访问。
var yourArray = [{"options": [{'id':1,'name':'All'},{'id':2,'name':'Javascript'},{'id':2000,'name':'Ruby'}]}];
var newArray = yourArray.map( function( el ){
return el.options.map( function( eln ){
return eln.name;
})
});
console.log (newArray);
更新:
感谢您的回答,很抱歉再次打扰您,我的实际JSON 结构如下:{“ brand”:[{“ options”:[{“ catgeory_name”: “ Sigma”},{“ catgeory_name”:“ Footner”}]}]}我们如何映射它以获得 像这样的输出[“ Sigma”,“ Footner”]因为我仍然在 地图时出现未定义的错误
let data = { "brand": [ {"options": [{"catgeory_name": "Sigma"},{"catgeory_name": "Footner"}]} ] }
let op = data.brand[0].options.map(({catgeory_name})=>catgeory_name)
console.log(op)
答案 1 :(得分:0)
这是使用map的简单解决方案,由于该选项位于第一个索引内,因此您可以使用yourArray[0]
var yourArray = [
{
"options": [
{
'id':1,
'name':'All'
},{
'id':2,
'name':'Javascript'
},{
'id':2000,
'name':'Ruby'
}
]
}
];
var newArray = yourArray[0].options.map(i => i.name)
console.log(newArray)