我在 Blaze Advisor (rule enginge) 中使用专有语言。我正在寻找一种算法,如何按特定属性形成的组仅保留数组中的前 N 个项目。例如,有两个数组:
parrent[0].id = 1
parrent[1].id = 2
第二个数组:
child[0].parrentId = 1
child[0].result = 3.0
child[1].parrentId = 1
child[1].result = 2.0
child[2].parrentId = 1
child[2].result = 4.0
child[3].parrentId = 1
child[3].result = 6.0
child[4].parrentId = 1
child[4].result = -1.0
child[5].parrentId = 2
child[5].result = 1.0
child[6].parrentId = 2
child[6].result = 16.0
child[7].parrentId = 2
child[7].result = 2.0
child[8].parrentId = 2
child[8].result = -10.0
child[9].parrentId = 2
child[9].result = 5.0
我想只保留数组中每个元素的前三个元素,如parrentId
属性所示。在我的语言中,我可以完成所有基本操作——我可以为每个构造使用 if/else、while、for、并创建新变量。我可以对数组 asc/desc 进行排序并获取已排序元素的索引。我可以删除数组的元素。child
result
对于我的数据,我需要以下结果:
child[0].parrentId = 1
child[0].result = 3.0
child[1].parrentId = 1
child[2].result = 4.0
child[3].parrentId = 1
child[3].result = 6.0
child[6].parrentId = 2
child[6].result = 16.0
child[7].parrentId = 2
child[7].result = 2.0
child[9].parrentId = 2
child[9].result = 5.0