gpt4 book ai didi

javascript - 如何对数组和对象进行分组?

转载 作者:行者123 更新时间:2023-11-30 16:49:54 26 4
gpt4 key购买 nike

我有一个包含 3 个对象的数组,但是第二个对象在“数据”对象中没有数组。

我需要以正确的顺序为每个“艺术家”执行 ng-repeat,但是第二个对象导致了问题。我如何将每个对象组合在一起?

在我的工厂中,我设置了一个调用来接收来自三个不同 API 的三个响应。我为每个人都设定了一个 promise ,所以他们会按照我所说的确切顺序出现。

工厂

.factory('timeline', function($http, $q) {    

var promise1 = $http({
method: "GET",
url: "http://api.example.com/last/3/?limit=3"
});
var promise2 = $http({
method: "GET",
url: "http://api.example.com/current/3/"
});
var promise3 = $http({
method: "GET",
url: "http://api.example.com/next/3/?limit=3"
});

return {
data: $q.all([promise1, promise2, promise3])
}

})

在我的 Controller 中,我得到了这样的响应。

[
Object
config
data: [Array 3]
-0: Object
artist : 'Artist'
title : 'Title'
-1: Object
-2: Object
,

Object
config
data: Object
artist : 'Artist'
title : 'Title
,

Object
config
data: [Array 3]
-0: Object
artist : 'Artist'
title : 'Title'
-1: Object
-2: Object
]

Controller

我尝试使用下划线进行过滤。

.controller('StationCtrl', function($scope, $stateParams, $http, timeline) {

timeline.data.then(function(musicData) {
var row = [];
for (var i = 0; i < musicData.length; i++) {
var data = _.filter(musicData[i].data, function(x){
row.push(x);
})
}
})
})

我的目标如果可能的话最终会按顺序组合一切

Object
data: [Array 7]
-0: Object
-1: Object
-2: Object
-3: Object
-4: Object
-5: Object
-6: Object
,

我仍在努力弄清楚如何使用对象和数组,任何帮助/提示都会很棒。

最佳答案

这是一种无需下划线即可解决问题的简单方法。您只需要检查您的数据是对象还是数组。

var arr = [
{ data: [{ artist: 'Artist' }, { artist: 'Artist2' }]},
{ data: { artist: 'Artist3' } },
{ data: [{ artist: 'Artist4' }]}
];

var flattened = [];

arr.forEach(function (el) {
if(Array.isArray(el.data)) {
flattened = flattened.concat(el.data);
} else {
flattened.push(el.data);
}
});

请参阅 jsbin 上的示例.

关于javascript - 如何对数组和对象进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30685580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com