var groups = [{
questions: [{
answers: [{
states: [
1,
2,
3
]
}, {
states: [
4,
5,
6
]
}]
}, {
answers: [{
states: [
7,
8,
9
]
}, {
states: [
10,
11,
12
]
}]
}]
}, {
questions: [{
answers: [{
states: [
13,
14,
15
]
}, {
states: [
16,
17,
18
]
}]
}, {
answers: [{
states: [
19,
20,
21
]
}, {
states: [
22,
23,
24
]
}]
}]
}];
function yourMethod() {
var states = [];
// For each group
groups.forEach(function (group) {
// For each question
group.questions.forEach(function (question) {
// For each answer
question.answers.forEach(function (answer) {
// For each state
answer.states.forEach(function (state) {
// Push to our array
states.push(state);
});
});
});
});
return states;
}
function myMethod() {
return groups.reduce((arr, group) => arr.concat(group.questions), [])
.reduce((arr, question) => arr.concat(question.answers), [])
.reduce((arr, answer) => arr.concat(answer.states), []);
}
var originalResult = yourMethod();
var newResult = myMethod();
console.log(originalResult.join(' ') === newResult.join(' '));
迭代而改变它的内容一脸尴尬这里。 – Redu
看起来你正朝着正确的方向前进!看看[这个函数式编程页面](http://reactivex.io/learnrx/).. –
你可以给你一个你正在使用的数组的简短范例吗?这样我们就可以看到您正在使用的输入('groups'数组),并且您可以向我们展示您期望的确切输出(来自该示例数据)。这使我们能够提供更具体的实用建议,而不是试图猜测。 –