gpt4 book ai didi

knockout.js - 从对象数组中选择不同

转载 作者:行者123 更新时间:2023-12-04 04:34:59 24 4
gpt4 key购买 nike

在 KO 中,是否可以根据数组中的属性从对象数组中返回一个 Distinct 列表。

我有一个包含对象集合的“Dialog”数组,对象中的一个属性是调用“photo”。我只想从数组中提取不同的照片。

到目前为止我的代码:

  my.vm.uniquePhotos = ko.computed(function () {
return ko.utils.arrayGetDistinctValues(my.vm.Dialog());
}, my.vm);

上面的代码返回数组中的所有“照片”,但我只想要不同的照片。
    <div id="participants" data-bind='foreach: uniquePhotos'>

<img data-bind="attr: { src: photo }" />

</div>

问候
熔化

最佳答案

要获得仅包含唯一照片的数组,您可以:

my.vm.uniquePhotos = ko.computed(function () {

var photos = my.vm.Dialog();
var o = {};
var r = [];

for(var i=0; i<photos.length;i++)
o[photos[i].photo] = photos[i].photo;

for(i in o)
r.push(o[i]);
}, my.vm);

或者,如果 photo 属性是对象中唯一需要的信息,则可以使用 arrayMap 来获取包含 url 的数组,并且它们使用 arrayGetDistinctValues。
my.vm.uniquePhotosUrl = ko.computed(function () { 
return ko.utils.arrayGetDistinctValues(
ko.utils.arrayMap(my.vm.Dialog(), function(p){
return p.photo;
})
);
}, my.vm);

观点:
<div id="participants" data-bind='foreach: uniquePhotosUrl '>
<img data-bind="attr: { src: $data}" />
</div>

我希望它有帮助。

关于knockout.js - 从对象数组中选择不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19882742/

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