Дополнительные Методы для Индексаторов, они были бы хороши? [закрытый]

попробуйте, это должно работать. Я знаю положение данных, чтобы было легко разделить и найти термины и дату

var csv = document.getElementById("csvFile").innerHTML ;



function get_Data(data) {
    var result = {terms:[], hours:[] }
    var r = data.split(/\r\n|\r|\n/);

    r.forEach(function(element) {
    if (element !== "" && element.length>1){
      var term = element.split(",")[2]
      var date = new Date(element.split(",")[0])
      var hour =  date.getHours() + ":" + (date.getMinutes()<=9 ? "0" + date.getMinutes() : date.getMinutes());
      
      result.terms.push(term);
      result.hours.push(hour)
      }
    });
 return result;
} 

console.log( get_Data(csv))
<div id="csvFile" style="display:none;">
11/28/2018 7:30,1128,-2.122,86.2,34.06,1.178,320.2,20.4
11/28/2018 7:45,1129,-2.325,85.6,34.54,1.771,325.5,30.72
11/28/2018 8:00,1130,-2.679,85.7,30.73,1.764,312.1,28.98
11/28/2018 8:15,1131,-2.872,88,34.55,1.073,306.6,25.65
11/28/2018 8:30,1132,-2.953,90.7,35.25,1.247,311.2,30.06
11/28/2018 8:45,1133,-3.064,93.3,35,1.449,312.6,30.13
11/28/2018 9:00,1134,-2.771,91.5,33.44,0.988,311,28.27
</div>

23
задан Sebastian 18 November 2013 в 14:02
поделиться

1 ответ

Индексаторы совместно используют много общности со свойствами (под капотом, индексатор свойство с индексом), и дополнительные свойства не существуют. Согласованный, были бы сценарии, где они удобны.

Ре представленный сценарий - до некоторой степени, это вполне похоже dynamic. Конечно, если Вы объявляете интерфейс, который имеет строковый индексатор, тогда Ваш код читателя мог использовать его непосредственно - но это будет партия из ненужной работы для реализации этого интерфейса неоднократно!

Ре дополнительный метод; это использует регулярное отражение? Вы могли бы хотеть посмотреть на приемы как HyperDescriptor , который мог бы сохранить много процессорного времени, если Вы делаете многое из этого. Типичное использование тогда было бы:

PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T));
while (reader.Read())
{
     T poco = new T();
     // abbreviated...
     (per prop)
        props[propName].SetValue(poco, cellValue);
}

можно оптимизировать это далее путем рассмотрения возвращенных столбцов сначала (однажды на сетку, не на строку), и только доступа к подобранным столбцам...

Или альтернативно, посмотрите на инструменты ORM; Expression может также использоваться, чтобы сделать считывание данных (у меня есть полный пример этого где-нибудь в Usenet для DbLinq)

12
ответ дан 29 November 2019 в 03:09
поделиться
Другие вопросы по тегам:

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