gpt4 book ai didi

javascript - 在分组表中显示数组

转载 作者:行者123 更新时间:2023-11-28 07:23:40 26 4
gpt4 key购买 nike

我有一个像这样的 JSON 数组:

Array = [{"type":"x", "name":"a1"}, 
{"type":"x", "name":"a2"},
{"type":"y", "name":"a3"},
{"type":"y", "name":"a4"}]

现在,我想使用 Angular 将其显示在表格中,以便它采用以下形式:

x
a1
a2
y
a3
a4

该表显示类型,然后显示具有该类型的所有项目的名称。

最佳答案

首先,野人@Morre 是正确的(尽管对他的正确性有点兴奋),你拥有的不是一个 JSON 数组,而是一个对象数组。但撇开语义不谈......

虽然我相信有一种更优雅的方法来解决您的问题,但这是一个可能的解决方案

// Given your array
var myArray = [{
"type": "x",
"name": "a1"
}, {
"type": "x",
"name": "a2"
}, {
"type": "y",
"name": "a3"
}, {
"type": "y",
"name": "a4"
}];

// create a new object structured like this
// {'x': ['a1', 'a2'], 'y': ['a2', 'a3']}
// while creating a new array that's structured like this
// ['x', 'a1', 'a2', 'y', 'a2', 'a3']
var newObj = {};
$scope.newArray = [];
myArray.map(function(obj) {
if (!newObj[obj.type]) {
newObj[obj.type] = [obj.name];
$scope.newArray.push(obj.type);
$scope.newArray.push(obj.name);
} else {
newObj[obj.type].push(obj.name);
$scope.newArray.push(obj.name);
}
});

你的ng-repeat可能看起来像这样

<tr ng-repeat="value in newArray">
<td>{{ value }}</td>
</tr>

参见JSFiddle了解更多详情

关于javascript - 在分组表中显示数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997681/

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