gpt4 book ai didi

javascript - 在 AngularJS 中排序并创建新数组

转载 作者:行者123 更新时间:2023-12-03 04:50:52 24 4
gpt4 key购买 nike

我希望我的解释是正确的。我有一个包含对象的数组:

$scope.items1 = [
[
{
"answer": "BARCELONA",
"idcustomer": 6,
"order": 1.1
},
{
"answer": "REAL MADRID",
"idcustomer": 6,
"order": 1.4
},
{
"answer": "LYON",
"idcustomer": 6,
"order": 1.2
},
{
"answer": "BAYERN",
"idcustomer": 6,
"order": 1.3
}
],
[
{
"answer": "BENFICA",
"idcustomer": 7,
"order": 1.2
},
{
"answer": "ARSENAL",
"idcustomer": 7,
"order": 1.4
},
{
"answer": "CITY",
"idcustomer": 7,
"order": 1.1
},
{
"answer": "UNITED",
"idcustomer": 7,
"order": 1.3
}
]
];

我需要使用该数组的一些值创建一个新数组。

我需要的最终结果是:- 第一个位置是idcostumer。- 按顺序排序。- 带有属性answer的答案。

$scope.result = [

[6, "BARCELONA", "LYON", "BAYERN", "REAL MADRID"],
[7, "CITY", "BENFICA", "UNITED", "ARSENAL"]

];

enter image description here

感谢您的帮助和建议。

最佳答案

听起来你可以使用 the reduce methodreduce允许您迭代数组以累积值。

两种结构都应该可以正常工作,显然它只会影响您如何编写方法来按照您想要的方式转换数据。我会为你做第一个:

$scope.result = $scope.items1.map(function(answerData){
answerData = answerData.sort(function(a, b) {
return a.order < b.order ? -1 : 1
});
return answerData.reduce(function(result, value) {
result.push(value.answer);
return result;
}, [answerData[0].idcustomer]);
});

让我们来分解一下。我们正在使用 map 迭代你的 $scope.items1数组并为数组中的每个值返回一些内容。自 $scope.items1是一个数组的数组(或一个二维数组),每个 answerData value 本身就是一个数组。首先,我们对 answerData 进行排序数组 order 。然后,我们使用reduce在每个 answerData arrays 获取仅包含 idcustomer 的数组以及 answer 中的每个字段。 reduce接受一个回调函数和一个初始值。在这种情况下,初始值为 [answerData[0].idcustomer] 。请注意,如果answerData,这将会中断。是空的!我们为回调函数定义两个参数 resultvalueresult是之前每次迭代的总累积结果,并且 value是数组的当前元素。对于每个value我们只需推其 answer字段到 result数组,并返回更新后的数组。

拔取idcustomer第一场answerData元素有点奇怪,所以你的第二个数据结构实际上可能工作得更好。但是,我会让你弄清楚如何做到这一点!

编辑:由于您编辑了问题以仅包含其他结构,因此这是您需要的转换:

$scope.result = $scope.items.map(function(answerData) {
var sortedDescription = answerData.description.sort(function(a,b) {
return a.order < b.order ? -1 : 1;
});
return sortedDescription.reduce(function(result, value) {
result.push(value.answer);
return result;
}, [answerData.idcustomer]);
});

关于javascript - 在 AngularJS 中排序并创建新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42662308/

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