从获取字符串数组到获取键值对数组

时间:2017-08-30 01:38:20

标签: javascript arrays dictionary key-value

我正在使用npmscraper。我在下面有两个几乎相同的函数,我想基本上将它们返回的结果组合成键值对格式的一个数组。

第一个函数返回[' orange',' apple',' grape']

第二个功能返回[' www.orange.com',' www.apple.com',' www.grape.com']

(非常简化)样本数据来自foo.com ###

<p>orange <a href="www.orange.com">click here</a></p>
<p>apple <a href="www.apple.com">click here</a></p>
<p>grape <a href="www.graphe.com">click here</a></p>
// Begin node app
 var scraperjs = require('scraperjs');

 // first function
  scraperjs.StaticScraper.create('https://foo.com/')
    .scrape(function($) {
        return $(".entry p").map(function() {
              return = $(this).text(); 
       }).get();
    })
    .then(function(fruit) { 
        // after some cleaning up...
        console.log(fruit)
         //returns ['orange','apple','grape']
    })

-----------------------
 // second function gets the links
 scraperjs.StaticScraper.create('https://foo.com/')
    .scrape(function($) {
        return $(".entry a").map(function() {
              return = $(this).attr('href'); 
       }).get();
    })
    .then(function(links) {
        console.log(links)
         // returns ['www.orange.com','www.apple.com','www.grape.com']
    })

(已编辑)我喜欢的是:

[{fruit: 'orange'; link 'www.orange.com'},{fruit: 'apple'; link 'www.apple.com'}]

1 个答案:

答案 0 :(得分:1)

所以,你将有两个数组

var array1 = ['orange','apple','grape'];
var array2 = ['www.orange.com','www.apple.com','www.grape.com']

// combining them to create an object

var result = array1.reduce(function(obj, key, index) {
    obj[key] = array2[index];
    return obj;
}, {});
console.log(result);