名称值对列表,无法增加名称宽度编号

时间:2015-01-19 16:21:42

标签: javascript jquery

我试图使用for循环创建它。

            slideArr.slide1 = 1;
            slideArr.slide2 = 2;
            slideArr.slide3 = 3;

所以我得到了我的总幻灯片,像这样循环遍历

            for ( index = 0; index < totalSlides.length; ++index ) 
            {
                slideArr.slide = index;
            }

但我希望案例中的名称值对名称&#34; slide&#34;也是增量。

            for ( index = 0; index < totalSlides.length; ++index ) 
            {
                slideArr.slide1 = 1;
            }

并在第二个循环

            for ( index = 0; index < totalSlides.length; ++index ) 
            {
                slideArr.slide2 = 2;
            }

...等。

这可能吗?

我基本上创建了一个名值对列表。

3 个答案:

答案 0 :(得分:1)

你可以这样做:

slideArr["slide" + index] = index;

但我想补充说这看起来很奇怪。你确定这是你想要的吗?

怎么样:

slideArray.slides.push(totalSlides[i]);

答案 1 :(得分:1)

试试这个

for ( index = 0; index < totalSlides.length; ++index ) 
{
    slideArr["slide" + index] = index;
}

答案 2 :(得分:1)

  

我强烈建议反对推荐slideArr["slide"+index]的解决方案。这是一个Code Smell,在这种情况下,它表明你做错了什么。发布完整的代码可以帮助其他人为您提供更好,更准确的答案。

首先,对我而言,slideArr意味着您正在使用Array数据类型,但是当您致电

时,您更像是将其视为对象
slideArr.slide1 = 1;

如果它实际上是一个数组,这将是非常糟糕的

// Don't use arrays like this !
var slideArr = [];
slideArr.slide1 = 1;

相反,如果你有一个包含幻灯片数组的 Object ,那可能会更好一点

// Use an object with an array !
var myData = {slides: []};

// Add some slides
myData.slides.push(1);
myData.slides.push(2);
myData.slides.push(3);

现在,myData

中有一系列幻灯片
console.log(myData.slides);
// => [1, 2, 3]

你可以很容易地完成这个过程

for (var i=0; i<myData.slides.length; i++) {
  console.log(myData.slides[i]);
}

输出

1
2
3

如果您事先了解幻灯片,则可以一次性定义myData

var myData = {slides: [1, 2, 3]};

您可以跳过上面的.push来电。循环保持不变,您将获得相同的输出。