2016-10-06 2 views
0

Я хотел бы заполнить свой магазин redux моим статусом модели, хранящимся в Realm, при запуске приложения. (Как предложено здесь Realm & React Native - Best practice to implement auto-updates?)Самый быстрый способ скопировать все данные области в объект JS?

Каков самый быстрый способ сделать это? В настоящее время я использую reduce для создания объекта JS. Занимает около 2 секунд в производстве для 2400 предметов. Есть ли более быстрый способ?

const getRealmData =() => { 

    let items = db.objects('Item') 
    let allItems = items.reduce((r,v) => { 
     r[v.item_id]= { 
      article: v.article, 
      excerpt: v.excerpt, 
      given_title:v.given_title,[...] 
     } 
     return r 
    }, {}) 

    return Immutable.fromJS(allItems) 
} 
+0

У нас нет каких-либо периодических чтений, поэтому это, вероятно, самый быстрый. 2 секунды звучат как много. У вас очень много свойств на вашем классе? –

ответ

0

Вы бы попробовали, как показано ниже?

var plainResults = Array.prototype.map.call(items, (item) => { 
    var object = {}; 
    for (var property of ItemSchema.properties) { 
    object[name] = item[name]; 
    } 
    return object; 
}); 
+0

Я получаю ошибку: 'Не могу прочитать свойство 'Символ (Symbol.iterator)' неопределенного'. Вот как выглядит элемент внутри map.call: 'Item {Symbol(): 9577, Symbol(): 9580, Symbol():" object "}'. Btw. есть ли разница между 'Array.prototype.map.call (items' и' items.map ('? – ThorbenA

Смежные вопросы