Javascript 如果循环中的最后一个属性不同,则添加元素

Javascript 如果循环中的最后一个属性不同,则添加元素,javascript,angularjs,Javascript,Angularjs,我的比赛(如游戏)控制器中有一个包含对象的数组: var tiles = [{name:"test",zPos:0}, {name:"test2",zPos:0}, {name:"test3",zPos:1}, {name:"test4",zPos:2}] 在我的html中,我使用以下内容循环对象: <p ng-repeat="tile in matches.tiles"> z{{tile.zPos}} - {{til

我的比赛(如游戏)控制器中有一个包含对象的数组:

    var tiles = [{name:"test",zPos:0},
     {name:"test2",zPos:0},
     {name:"test3",zPos:1},
     {name:"test4",zPos:2}]
在我的html中,我使用以下内容循环对象:

    <p ng-repeat="tile in matches.tiles">
         z{{tile.zPos}} - {{tile.name}}
    </p>

z{{tile.zPos}-{{tile.name}

如何添加一个额外的div,如

<div class="newzindex"></div>

如果tile.zPos属性与上一个循环不同,那么每个唯一的zPos属性都有一个唯一的div。我试图达到的结果是

   <p>
         z0 -   test
   </p>
   <p>
         z0 -   test2
   </p>
   <div class="newzindex"></div>
   <p>
         z1 -   test3
   </p>
   <div class="newzindex"></div>
   <p>
         z2 -   test4
    </p>

z0-测试

z0-测试2

z1-test3

z2-test4


您可以使用
ng repeat start
ng repeat end
指令()

HTML

<p ng-repeat-start="tile in matches.tiles ">
    z{{tile.zPos}} -   {{tile.tile.name}}
</p>
<div ng-if="matches.tiles[$index + 1].zPos != tile.zPos" ng-repeat-end class="newzindex"></div>

z{{tile.zPos}-{{tile.tile.name}


这让我有点困惑:“不同于上一个循环”与“每个唯一zPos一个唯一的div”。那是哪一个呢?因此,如果我们停留在您的示例中,如果
z0
位于
z2
之后,那么它是否应该创建一个新的div呢?@johnsmith在循环中(ng repeat)我想看看一个属性是否与上一次迭代相同。如果不是,我想展示一个具体的例子,我建议在问题中重新措辞。(但可能只有我……:)@JohnSmith在这里发表了这样的评论;您是否试图将
z0
z1
等所有内容组合在一起?如果您的数据有
z0、z1、z2、z0
,您是想显示
z0
两次还是分组在一起?angular不会对每个循环的值进行评估,从而对未来的迭代做出任何决定。…@John Smith他的问题对我来说很有意义。仅当当前迭代中的
zpos
与上次迭代中的
zpos
不同时,才添加新div。