Javascript 将两个数组合并为选项数组
我有两个字符串数组:Javascript 将两个数组合并为选项数组,javascript,jquery,Javascript,Jquery,我有两个字符串数组:hrefs,thumbs。需要将此数组组合到另一个具有如下结构的数组中。怎么做?为了清楚起见,我需要使用调用函数Lightview.show(elements),其中elements是我需要构建的结果数组 HTML: 所需的结果数组(元素): 我从这开始,但我认为这是错误的 var e = new Array(); $.each(hrefs, function(i, value) { e[i] = new Array(); e[i][0] = value;
hrefs
,thumbs
。需要将此数组组合到另一个具有如下结构的数组中。怎么做?为了清楚起见,我需要使用调用函数Lightview.show(elements)
,其中elements是我需要构建的结果数组
HTML:
所需的结果数组(元素):
我从这开始,但我认为这是错误的
var e = new Array();
$.each(hrefs, function(i, value) {
e[i] = new Array();
e[i][0] = value;
e[i][1] = {thumbnail: thumbs[i]};
});
你是说这个吗
var result = $('.lv').map(function() {
var o = {};
o[$(this).attr('href')] = { thumbnail: $(this).attr('thumbnail') } };
return o;
}).get();
你是说这个吗
var result = $('.lv').map(function() {
var o = {};
o[$(this).attr('href')] = { thumbnail: $(this).attr('thumbnail') } };
return o;
}).get();
试试这个
var result = {};
$.each( hrefs, function ( index ) {
result[ hrefs[ index ] ] = { thumbnail: thumbs[ index ] };
});
试试这个
var result = {};
$.each( hrefs, function ( index ) {
result[ hrefs[ index ] ] = { thumbnail: thumbs[ index ] };
});
你快到了。只要做:
var e = [];
$.each(hrefs, function(i, value) {
e[i] = [];
e[i] = [ value, {thumbnail: thumbs[i]} ];
});
甚至更短:
var e = [];
$.each(hrefs, function(i, value) {
e[i] = [ value, {thumbnail: thumbs[i]} ];
});
你快到了。只要做:
var e = [];
$.each(hrefs, function(i, value) {
e[i] = [];
e[i] = [ value, {thumbnail: thumbs[i]} ];
});
甚至更短:
var e = [];
$.each(hrefs, function(i, value) {
e[i] = [ value, {thumbnail: thumbs[i]} ];
});
你在找这样的东西吗
var hrefs = $('.lv').map(function() { return $(this).attr('href'); }).get();
var thumbs = $('.lv').map(function() { return $(this).attr('thumbnail'); }).get();
var arr = {};
for (i in hrefs) {
arr[hrefs[i]] = {
thumbnail: thumbs[i]
}
}
另一个建议是,尽量少使用JQuery以加快执行速度
var lvs = $('.lv');
var arr = {};
for (i=0; i< lvs.length; i++) {
arr[lvs[i].getAttribute('href')] = {
thumbnail: lvs[i].getAttribute('thumbnail')
}
}
var lvs=$('.lv');
var arr={};
对于(i=0;ivar hrefs = $('.lv').map(function() { return $(this).attr('href'); }).get();
var thumbs = $('.lv').map(function() { return $(this).attr('thumbnail'); }).get();
var arr = {};
for (i in hrefs) {
arr[hrefs[i]] = {
thumbnail: thumbs[i]
}
}
另一个建议是,尽量少使用JQuery以加快执行速度
var lvs = $('.lv');
var arr = {};
for (i=0; i< lvs.length; i++) {
arr[lvs[i].getAttribute('href')] = {
thumbnail: lvs[i].getAttribute('thumbnail')
}
}
var lvs=$('.lv');
var arr={};
对于(i=0;i{name:value}
。。。您不能有{{name:value}
。您可以执行{name1:{name2:value}}
。您想要的结果不是有效的Javascript/JSON结构。你能澄清一下你在寻找什么吗?这个结构有什么问题吗?@marioosh你能给出一个具体的例子,说明你到目前为止展示的代码所需要的输出吗?我不太关心确切的有效语法。我只是不清楚所需的数据结构是什么。您所寻找的东西不可能存在于javascript中。对象的格式必须为{name:value}
。。。您不能有{{name:value}
。您可以执行{name1:{name2:value}}
。这可能是错误的,但我确信您必须使用括号表示法才能使代码正常工作<代码>变量o={};o[$(this.attr('href')]={thumb:…};返回o代码>还是不?我以前也这么做过,看起来你应该能够。。。通常,如果可读性足够好,您可以将代码缩减为一行,例如函数func(o){return o={},o['foo']={a:'baz'},o;}
可能是错误的,但我很确定您必须使用括号表示法才能使代码正常工作<代码>变量o={};o[$(this.attr('href')]={thumb:…};返回o代码>还是不?我以前也这么做过,看起来你应该能够。。。通常,如果可读性足够好的话,您可以将代码缩减为一行,比如function func(o){return o={},o['foo']={a:'baz'},o;}
Good,+1表示普通javascript。Good,+1表示普通javascript。