【发布时间】:2014-10-12 23:22:01
【问题描述】:
我有一个 ng-repeat,它返回如下对象数组:
[{"day":"10","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"}]
[{"day":"3","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"}]
我想拉出对象并将它们推入另一个数组,以便它们的格式如下:
[
{"day":"10","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"},
{"day":"3","title":"day","summary":"summary","description":"ok","_id":"53f25185bffedb83d8348b22"
}]
目标是在数组上使用 orderBy。是否可以将 JSON 重构为这种格式,然后访问数据?
这是我的观点供参考:
<div class="calDynamic" data-ng-repeat="n in [] | range:100">
<div ng-repeat="cal in calendar[n].year | filterKey:month">
<p>{{cal}}</p>
</div>
</div>
我的 JSON 格式:
{
"_id" : ObjectId("53f252537d343a9ad862866c"),
"year" : {
"December" : [],
"November" : [],
"October" : [],
"September" : [],
"August" : [],
"July" : [
{
"day" : "21",
"title" : "u",
"summary" : "u",
"description" : "ok",
"_id" : ObjectId("53f252537d343a9ad862866d")
}
],
"June" : [],
"May" : [],
"April" : [],
"March" : [],
"February" : [],
"January" : []
},
"__v" : 0
},
{
"_id" : ObjectId("53f252537d343a9ad862866c"),
"year" : {
"December" : [],
"November" : [],
"October" : [],
"September" : [],
"August" : [],
"July" : [
{
"day" : "3",
"title" : "u",
"summary" : "u",
"description" : "ok",
"_id" : ObjectId("53f252537d343a9ad862866d")
}
],
"June" : [],
"May" : [],
"April" : [],
"March" : [],
"February" : [],
"January" : []
},
"__v" : 0
}
【问题讨论】:
-
Array.concat 是你要找的吗?
-
那可能是我没有调查过
-
所以你想将几个月内的所有数组合并为一个数组?
-
是的,这是一个 JSfiddle 示例,其中包含我想使用的逻辑。我只需要将我的数据重新排序到一个数组中。 jsfiddle.net/rapsac/dc9wtn0y
-
试试
var result = [].concat.apply([], Object.keys(obj.year).map(function(key){ return obj.year[key]; }));我无法访问小提琴。你有一个 js bin 吗?
标签: javascript json angularjs foreach