gpt4 book ai didi

javascript - 比较 ng Repeat 中的每最后两条记录

转载 作者:行者123 更新时间:2023-12-01 03:52:42 25 4
gpt4 key购买 nike

以下是记录:

$scope.myArray = 
[
{
"id": 100,
"child": [
{
"id": 77,
"part": 33,
"name" : 16
"subName": 16.1,
},
{
"id": 76,
"part": 30,
"name" : 14,
"subName": 14.3,
},
{
"id": 75,
"part": 29,
"name" : 12,
"subName": 12.1,
}
]
}
]

现在在上面的记录中,16.1属于part = 33,14.3属于part = 30,因此两个子名称属于不同的部分,所以我想显示名称16和14。

因此,上述记录的预期输出如下所示:

16
14
12

当我有以下记录时就会出现问题:

$scope.myArray = 
[
{
"id": 100,
"child": [
{
"id": 76,
"part": 30,
"name" : 14,
"subName": 14.3,
},
{
"id": 71,
"part": 30,
"name" : 14,
"subName": 14.2,
},
{
"id": 70,
"part": 30,
"name" : 14,
"subName": 14.1,
}
]
}
]

这里子包含同一部分的所有子名称,即 30,所以现在我想显示子名称。所以在这种情况下的预期输出将是子名称,如下所示:

14.3
14.2
14.1

记录将从 0 - 1,1 - 2, 2 - 3 进行比较,但在这里我不知道如果子数组包含两个以上记录,如何比较记录。

注意:如果两个记录中的任何一个包含不同的部分,则子数组中不会有重复的部分。例如,我不会有像 16.1,14.3,14.2 这样的子名,因为这里我有 16.1,它属于不同的部分。但如果 16.1 不存在,那么我可以拥有相同部分的 14.3,14.2。

var app = angular.module('myApp', []);
app.controller('myCtrl', function ($scope) {
$scope.myArray =
[
{
"id": 100,
"child": [
{
"id": 77,
"part": 33,
"name" : 16,
"subName": 16.1,
},
{
"id": 76,
"part": 30,
"name" : 14,
"subName": 14.3,
},
{
"id": 75,
"part": 29,
"name" : 12,
"subName": 12.1,
}
]
}
]
});
<!DOCTYPE html>
<html ng-app="myApp" ng-controller="myCtrl">
<head>
<title></title>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body>
<div ng-repeat="item in myArray[0].child">
{{ item.name }}
</div>
</body>
</html>

最佳答案

请参阅下面的 Controller 代码。我尝试实现你想要的。

$scope.myArray = [ {
"id" : 100,
"child" : [ {
"id" : 76,
"part" : 30,
"name" : 14,
"subName" : 14.3,
}, {
"id" : 71,
"part" : 30,
"name" : 14,
"subName" : 14.2,
}, {
"id" : 70,
"part" : 30,
"name" : 14,
"subName" : 14.1,
} ]
}, {
"id" : 101,
"child" : [ {
"id" : 77,
"part" : 33,
"name" : 16,
"subName" : 16.1,
}, {
"id" : 76,
"part" : 30,
"name" : 14,
"subName" : 14.3,
}, {
"id" : 75,
"part" : 29,
"name" : 12,
"subName" : 12.1,
} ]
} ]

HTML 代码:

<div ng-repeat="item in myArray">
============<br />
<div ng-repeat="item1 in item.child">
<span>{{(item1.part==item.child[$index+1].part ||
($index==item.child.length-1 &&
item1.part==item.child[$index-1].part))?item1.subName:item1.name}}</span>
</div>
</div>

在这里,我检查当前项目和下一个项目的部分是否相同,如果它是最后一个项目,则当前项目和上一个项目的部分是否相同,并根据我显示的 subName名称。我希望这个解决方案对您有用。

更新:

    var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.myArray = [{
"id": 100,
"child": [{
"id": 76,
"part": 30,
"name": 14,
"subName": 14.3,
}, {
"id": 71,
"part": 30,
"name": 14,
"subName": 14.2,
}, {
"id": 70,
"part": 30,
"name": 14,
"subName": 14.1,
}]
}, {
"id": 101,
"child": [{
"id": 77,
"part": 33,
"name": 16,
"subName": 16.1,
}, {
"id": 76,
"part": 30,
"name": 14,
"subName": 14.3,
}, {
"id": 75,
"part": 29,
"name": 12,
"subName": 12.1,
}]
}]
});
<html ng-app="myApp" ng-controller="myCtrl">
<head>
<title></title>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body>
<div ng-repeat="item in myArray">
============<br />
<div ng-repeat="item1 in item.child">
<span>{{(item1.part==item.child[$index+1].part ||
($index==item.child.length-1 &&
item1.part==item.child[$index-1].part))?item1.subName:item1.name}}</span>
</div>
</div>
</body>
</html>

关于javascript - 比较 ng Repeat 中的每最后两条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43045092/

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