Получить все значения из словаря

Я использую 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();
Другие вопросы по тегам