javascript - 名称值对列表,无法增加名称宽度数字

标签 javascript jquery

我正在尝试使用 for 循环来创建它。

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

所以我得到了我的全部幻灯片,像这样循环播放它们

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

但我希望“slide”案例中的名称值对名称也增加。

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

在第二个循环

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

..等等..

这可能吗?

我基本上是在创建一个名称值对列表。

最佳答案

I would highly advise against solutions recommending slideArr["slide"+index]. This is a Code Smell and in this case it suggests you're doing something wrong. Posting your full code would help others give you better, more precise answers.

首先,slideArr 对我来说意味着您正在使用 Array 数据类型,但在调用时您将其视为对象

slideArr.slide1 = 1;

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

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

相反,如果您有一个包含幻灯片数组的对象,那可能会好一点

// 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调用。循环保持不变,您将获得相同的输出。

关于javascript - 名称值对列表,无法增加名称宽度数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28029098/

相关文章:

javascript - 如何使 block 中的所有链接在新选项卡中打开

javascript - 你必须在 View 中使用 ng-Controller 还是可以在 $routeProvider 中声明它?

jquery - 如何正确覆盖 Jquery UI 样式

jquery - 如何使用 CkEditors 验证多个文本区域

javascript - 访问时更改导航栏中元素的颜色

javascript - Angularjs 种子中的index.html 和index-async.html 有什么区别?

javascript - Isotope 和 Masonry jQuery 插件之间的区别

Javascript 帮助改变 writeln 中的颜色

Javascript - 数据聚合/求和值

javascript - Window.load 在加载图像之前执行