jQuery:我如何创建一个数组对象,其中的变量设置对象键的数量和键值本身?
我正试着去想这件事,希望你能帮我 我的目标是创建一个jQuery:我如何创建一个数组对象,其中的变量设置对象键的数量和键值本身?,jquery,arrays,object,map,Jquery,Arrays,Object,Map,我正试着去想这件事,希望你能帮我 我的目标是创建一个数组的对象,其中每个键由一个变量设置,该键的值是另一个数组的过滤结果 好吧,写起来很复杂,下面是一个例子: <!-- Markup --> <section id="container"> <article class="class-1">1</article> <article class="class-2">2</article> <art
数组的对象
,其中每个键
由一个变量
设置,该键的值
是另一个数组
的过滤结果
好吧,写起来很复杂,下面是一个例子:
<!-- Markup -->
<section id="container">
<article class="class-1">1</article>
<article class="class-2">2</article>
<article class="class-3">3</article>
<article class="class-4">4</article>
<article class="class-5">5</article>
<article class="class-6">6</article>
<article class="class-7">7</article>
<article class="class-8">8</article>
<article class="class-9">9</article>
</section>
// Desired outcome:
// plugin variables are
{ columns:3 }
var cols = {
1 : [ $('.class-1') , $('.class-4') , $('.class-7') ],
2 : [ $('.class-2') , $('.class-5') , $('.class-8') ],
3 : [ $('.class-3') , $('.class-6') , $('.class-9') ]
};
// my jQuery so far:
// note : columns == 3
var cols = $.map( $('article','#container') , function(item, i) {
return {[ i%columns+1 : item ]};
});
1.
2.
3.
4.
5.
6.
7.
8.
9
//预期结果:
//插件变量是
{列:3}
var cols={
1:[$('.class-1'),$('.class-4'),$('.class-7')],
2:[$('.class-2'),$('.class-5'),$('.class-8')],
3:[$('.class-3'),$('.class-6'),$('.class-9')]
};
//到目前为止,我的jQuery:
//注:列==3
var cols=$.map($('article','#container'),函数(item,i){
返回{[i%列+1:item]};
});
我怎样才能在这里实现我所需要的?
我做错了什么
任何帮助都将不胜感激
谢谢你的阅读
詹尼斯如何:
或者,对于更动态的方法:
cols = {};
for(var i = 1; i <= info.columns; i++)
cols[i] = articles
.filter(':nth-child(' + info.columns + 'n + ' + i + ')')
.map(mapFunc).get()
cols={};
对于(var i=1;i我想我明白了您的意图。您希望文章在加载时自动排序到列映射中,对吗
我不认为.map
会让你达到目的,因为它会返回一个数组。在你想要的输出中,你有一个对象,每个列都有键。我认为你想要的是以下内容:
var columns = 3;
var cols = {};
$(document).ready(function(){
$('article','#container').each(function(index, value){
var col = index%columns + 1;
if(cols[col] === undefined){
cols[col] = [$(value)];
} else {
cols[col].push($(value));
}
});
});
这正是我想要创建的,非常感谢!感谢您的解决方案,在这种情况下,我更喜欢RSG的解决方案,但无论如何,这(特别是第二个解决方案)非常好,我会记住它以备将来使用。再次感谢。
var columns = 3;
var cols = {};
$(document).ready(function(){
$('article','#container').each(function(index, value){
var col = index%columns + 1;
if(cols[col] === undefined){
cols[col] = [$(value)];
} else {
cols[col].push($(value));
}
});
});