2016-09-23 48 views
0

處理我用這回我這樣一些數據的功能:未格式化數據陣列

[{url1: "number1"},{url2: "number2"},{url3: "number3"},etc...] 

下面是函數,這是我沒有寫自己:

const getNbShares = function() { 
    return Promise.map(urls, requestPromise) 
        .map((htmlOnePage, index) => { 
        const $ = cheerio.load(htmlOnePage); 
        const share = $('.nb-shares').html(); 
        let shareTuple = {}; 
        shareTuple[urls[index]] = share; 
        return shareTuple; 
     }) 
     .catch((e) => console.log('We encountered an error' + e)); 
} 

有沒有辦法重寫這個函數,所以我有一個正確的數組對象(最好的解決方案,但更復雜?)或有一種方法來重新格式化我的數據數組,我可以有這樣的事情:

[{url:"url1",value: "number1"},{url:"url2",value: "number2"},{url: "url3", value: "number3"},etc...] 
+1

建議增加語言標記 – chux

回答

1

是的,只是改變了鍵:

const getNbShares = function() { 
    return Promise.map(urls, requestPromise) 
        .map((htmlOnePage, index) => { 
        const $ = cheerio.load(htmlOnePage); 
        const share = $('.nb-shares').html(); 
        let shareTuple = {}; 

        // set `url` to `urls[index]` 
        shareTuple.url = urls[index]; 

        // then set the `value` to `share` 
        shareTuple.value = share; 

        return shareTuple; 
     }) 
     .catch((e) => console.log('We encountered an error' + e)); 
} 
+0

確定。它的工作完美。我想我真的不明白做這個'shareTuple [urls [index]]'這行代碼是什麼......對我來說這看起來像某種Python。 –

+0

不,它不是Python。它是ES6(JavaScript)。它只是訪問對象屬性。 –