gpt4 book ai didi

javascript - 将类似模型分组到 Backbone 集合中

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

我有一个 Backbone 集合,我在其中迭代并查找 mdl.get('group')。这将返回:

[未定义,未定义,组,组,组,未定义,组,组,组,未定义,组,组]

我希望它返回的是这些组模型的数组(或集合):

[未定义,未定义,[组],未定义,[组],未定义,[组]

我正在尝试想出最好的方法:

  • 迭代对象
  • 返回“未定义”值而不更改它们
  • 寻找值(value)观相似的 sibling
  • 将它们折叠到对象内的数组中

很像 _.groupBy 方法,但我需要保留对象内模型的正确顺序。

我希望得到一些关于如何解决这个问题的想法。到目前为止,我在如何正确解决这个问题上遇到了困难。

谢谢!

最佳答案

经过一番修改,想出了这个解决方案。我扩展了 Array.prototype,以便您可以轻松地将其放入。您可以使用它创建 Underscore 扩展或 Collection.prototype 方法:

Array.prototype.pack = function(field) {
var result = [], target, lastItem;
while(this.length > 0) {
var item = this.shift();
if(item === undefined) {
target = result;
} else {
if(!lastItem || item[field] != lastItem[field]) {
target = [];
result.push(target);
}
}
target.push(item);
lastItem = item;
}
return result;
}

请注意,它没有经过严格的测试,并且肯定可以进行改进,但应该可以给您一个想法。您可以像这样使用它:

models.pack("name")

其中 models 是一个普通数组,如 [undefined, {field:value}]。

尽量简洁。这里有一个工作演示:http://jsfiddle.net/YZQ6v/

关于javascript - 将类似模型分组到 Backbone 集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16492161/

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