使用键将数组推入数组
Push array into array with keys
我目前正在使用数组并将项目推入数组。下面我有 for 循环,在 CasperJS 内部被调用,链接被废弃并放置在数组中。页面链接放在名为 page_links
的数组中,视频链接放在数组 video_links
中。但是我正在尝试将两个数组合并为一个数组。如何使用键将项目推送到数组中?
var page_links = [];
var video_links = [];
for (var i = 0; i < categoryUrls.length; i++)
{ // start for loop
casper.thenOpen(categoryUrls[i], function() {
tryAndScroll(this);
casper.then(function() {
this.getElementsInfo('.title').forEach(function(element) {
// skip elements that don't have a href attribute...
if (!element.attributes.href) {
return;
}
page_links.push( element.attributes.href );
casper.thenOpen(element.attributes.href, function() {
this.click('.responsivewrapper');
}).then(function(){
casper.each(this.getElementsInfo('.badge-youtube-player'), function(casper, element, j) {
video_links.push( element["attributes"]["src"] );
});
});
});
});
});
}
想要的结果
{ { 'page_link' : 'www.example.com', 'video_link' : 'www.example.com' }, { 'page_link' : 'www.example.com', 'video_link' : 'www.example.com' } }
考虑到数组,你可以通过我在这里没有考虑的任何方式获得 -
var page_links = [ "Link1", "link2" ];
var video_links = [ "vlink1", "vlink2" ];
同时假设两个数组的长度相同(你可以应用逻辑来检查这一点,我在这里省略了),这是解决方案
var finalArr = [];
for(var ii = 0, ll = page_links.length; ii < ll; ii++) {
finalArr[ii] = {};
finalArr[ii].page_link = page_links[ii];
finalArr[ii].video_link = video_links[ii];
}
finalArr
将使用以下数组详细信息进行更新
[{page_link: "Link1", video_link: "vlink1"}, ...];
我目前正在使用数组并将项目推入数组。下面我有 for 循环,在 CasperJS 内部被调用,链接被废弃并放置在数组中。页面链接放在名为 page_links
的数组中,视频链接放在数组 video_links
中。但是我正在尝试将两个数组合并为一个数组。如何使用键将项目推送到数组中?
var page_links = [];
var video_links = [];
for (var i = 0; i < categoryUrls.length; i++)
{ // start for loop
casper.thenOpen(categoryUrls[i], function() {
tryAndScroll(this);
casper.then(function() {
this.getElementsInfo('.title').forEach(function(element) {
// skip elements that don't have a href attribute...
if (!element.attributes.href) {
return;
}
page_links.push( element.attributes.href );
casper.thenOpen(element.attributes.href, function() {
this.click('.responsivewrapper');
}).then(function(){
casper.each(this.getElementsInfo('.badge-youtube-player'), function(casper, element, j) {
video_links.push( element["attributes"]["src"] );
});
});
});
});
});
}
想要的结果
{ { 'page_link' : 'www.example.com', 'video_link' : 'www.example.com' }, { 'page_link' : 'www.example.com', 'video_link' : 'www.example.com' } }
考虑到数组,你可以通过我在这里没有考虑的任何方式获得 -
var page_links = [ "Link1", "link2" ];
var video_links = [ "vlink1", "vlink2" ];
同时假设两个数组的长度相同(你可以应用逻辑来检查这一点,我在这里省略了),这是解决方案
var finalArr = [];
for(var ii = 0, ll = page_links.length; ii < ll; ii++) {
finalArr[ii] = {};
finalArr[ii].page_link = page_links[ii];
finalArr[ii].video_link = video_links[ii];
}
finalArr
将使用以下数组详细信息进行更新
[{page_link: "Link1", video_link: "vlink1"}, ...];