jQuery.map - Практические применения для функции?

Из вашего описания кажется, что вы используете словарь для представления видов «полей» / «свойств» и их значений, и что они связаны с каждым:

Словарь содержит ключ «date» со значением DateTime и различными другими ключами, которые соответствуют значениям десятичных чисел

blockquote>

В этом случае вам лучше создать собственный класс с каждым из этих ключей в качестве отдельного свойства класса. Примерно так:

public class YourClass 
{
    public Date DateTime { get; set; }
    public int SomeProperty1 { get; set; }
    public int SomeProperty2 { get; set; }
    // ....
}

Как только вы это сделаете, вместо List> получите List. Теперь будет легко выполнить требуемый linq:

Я хочу сгруппировать по дате и сделать среднее для каждого десятичного числа.

blockquote>
var result = listOfCustomTypes.GroupBy(i => i.DateTime)
                              .Select(g => new YourClass {
                                  Date = g.Key,
                                  SomeProperty1 = g.Average(i => i.SomeProperty1),
                                  SomeProperty2 = g.Average(i => i.SomeProperty2),
                              });

И последнее, поскольку ваши данные изначально имеют формат JSON, вы можете:

34
задан RedWolves 2 April 2009 в 02:47
поделиться

5 ответов

$.map все о преобразовании объектов в наборе.

До DOM я часто использую его для быстрого щипания значений от моих элементов:

var usernames = $('#user-list li label').map(function() {
    return this.innerHTML;
})

Вышеупомянутое преобразовывает <label> элементы в списке пользователей только к тексту, содержавшему там. Затем я могу сделать:

alert('The following users are still logged in: ' + usernames.join(', '));
23
ответ дан 27 November 2019 в 16:36
поделиться

Отображение имеет две основных цели: захват свойств от массива объектов и преобразования каждого объекта во что-то еще.

Предположим, что у Вас есть массив объектов, представляющих пользователей:

var users = [
  { id: 1, name: "RedWolves" },
  { id: 2, name: "Ron DeVera" },
  { id: 3, name: "Jon Skeet" }
];

Отображение является удобным способом захватить определенное свойство от каждого объекта. Например, можно преобразовать его в массив идентификаторов пользователей:

var userIds = $.map(users, function(u) { return u.id; });

Как другой пример, скажите, что у Вас есть набор элементов:

var ths = $('table tr th');

Если Вы хотите сохранить контент тех заголовков таблицы для более позднего использования, можно получить массив их содержимых HTML:

var contents = $.map(ths, function(th) { return th.html(); });
35
ответ дан 27 November 2019 в 16:36
поделиться

Карта является старшей функцией, которая позволяет Вам применить определенную функцию к данной последовательности, генерируя новую получающуюся последовательность, содержащую значения каждого исходного элемента со значением прикладной функции.

Я часто использую его для получения допустимого селектора всех моих панелей UI jQuery, например:

var myPanels = $('a').map(function() { 
  return this.hash || null; 
}).get().join(',');

Это возвратится, запятая разделила строку панелей, доступных на текущей странице как это:

"#home,#publish,#request,#contact"

И это - допустимый селектор, который может использоваться:

$(myPanels);// do something with all the panels
6
ответ дан 27 November 2019 в 16:36
поделиться

Вот одна вещь, для которой Вы могли использовать его.

$.map(["item1","item2","item3"], function(n){
    var li = document.createElement ( 'li' );
    li.innerHTML = n;
    ul.appendChild ( li );
    return li;
});
1
ответ дан 27 November 2019 в 16:36
поделиться

Преобразование кодовых обозначений для кодирования текста было бы возможным применением. Такой как тогда, когда у Вас есть список выборки и каждое индексируемое значение, имеет соответствующий текст кода.

0
ответ дан 27 November 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: