Получить все значения из словаря
Я использую linqjs на своем веб-сайте и пытаюсь получить все значения словаря, заполненного toDictionary()
расширение библиотеки.
Вот мой код:
var imagesDictionary = Enumerable.from(data)
.select(function (x) {
var images = Enumerable.from(x.ImagesSections)
.selectMany(function (y) {
return Enumerable.from(y.Images)
.select(function (z) {
return z.Thumb;
});
})
.toArray();
return { Title: x.Title, Images: images };
})
.toDictionary("$.Title", "$.Images");
var imagesToPreload = imagesDictionary.toEnumerable()
.selectMany("$.Value");
Я хотел бы, чтобы imagesToPreload стал массивом всех изображений, содержащихся в словаре, но я не могу понять, как это сделать, и это:
var imagesToPreload = imagesDictionary.toEnumerable()
.selectMany("$.Value");
кажется, чем все привыкли к этому.
Может ли кто-нибудь помочь мне?
1 ответ
Решение
Поскольку, похоже, вы используете бета-версию linqjs 3, формат записей изменился. Свойства теперь в нижнем регистре.
var imagesDictionary = Enumerable.from(data)
.toDictionary("$.Title",
"Enumerable.from($.ImagesSections).selectMany('$.Images', '$$.Thumb').toArray()"
);
var imagesToPreload = imagesDictionary.toEnumerable()
.selectMany("$.value") // lowercase 'value'
.toArray();