【发布时间】:2015-08-06 00:03:10
【问题描述】:
我有以下 JSON 数据,包含嵌套数组
{
"works": {
"work": [
{
"id": "001",
"filename": "image1.jpg",
"urls": {
"url": [
{
"_type": "small",
"__text": "small-image.jpg"
},
{
"_type": "medium",
"__text": "medium-image.jpg"
},
{
"_type": "large",
"__text": "large-image.jpg"
}
]
},
"details": {
"flash": "0",
"model": "CAMERA MODEL 1",
"make": "CAMERA MAKE 1",
}
},
{
"id": "001",
"filename": "image1.jpg",
"urls": {
"url": [
{
"_type": "small",
"__text": "small-image.jpg"
},
{
"_type": "medium",
"__text": "medium-image.jpg"
},
{
"_type": "large",
"__text": "large-image.jpg"
}
]
},
"details": {
"flash": "0",
"model": "CAMERA MODEL 2",
"make": "CAMERA MAKE 2",
}
}
]
}
}
我想重写数组,让它看起来像这样
[{
"id": "001",
"filename": "image1.jpg",
"_type": "small",
"url": "small-image.jpg",
"model": "CAMERA MODEL 1",
"make": "CAMERA MAKE 1"
}, {
"id": "002",
"filename": "image2.jpg",
"_type": "small",
"url": "small-image.jpg",
"model": "CAMERA MODEL 2",
"make": "CAMERA MAKE 2"
}]
我一直在阅读有关 Lodash 中的链接的信息,但到目前为止,实施它的运气并不好。到目前为止,这是我所得到的:
var flattened = _.chain(data).pluck("works")
.concat(_.flatten(_(data).pluck("work")))
.reject(_.isUndefined)
.value()
任何帮助将不胜感激!
【问题讨论】:
-
work 数组的两个成员都有
"id": "001",但输出有"001"和"002",这是错字吗?
标签: javascript arrays json underscore.js lodash