首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用两个数组的JS

使用两个数组的JS
EN

Stack Overflow用户
提问于 2013-09-19 11:46:32
回答 1查看 56关注 0票数 0

我需要像我的注释中描述的那样创建一个数组cells。我想知道这个脚本有什么问题,以及实现这一结果的更完善的方法。

看看js小提琴http://jsfiddle.net/XvTrf/5/

代码语言:javascript
复制
var data = ['D-0','D-1','D-2','D-3','D-4','D-5','D-6','D-7','D-8','D-9'];

var cells=[];
var d = 0, lenD = data.length;

while(d< lenD){
    if(d === 1 || d === 5 || d ===6){
       cells.push('test');
    }else {
        cells.push(data[d]);
    }
    d++;
}
console.log(cells);


/* result wanted
D-0
test
D-1
D-2
D-3
test
test
D-4
D-5
D-6
D-7
D-8
D-9

*/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-19 11:55:23

entered语句意味着没有输入某些条目。

此外,您还可以使用splice方法.这将导致代码减少,但速度也会降低。

代码语言:javascript
复制
var data = ['D-0','D-1','D-2','D-3','D-4','D-5','D-6','D-7','D-8','D-9'];

var cells= data.slice(0);;
cells.splice(1, 0, "TEST");
cells.splice(5, 0, "TEST");
cells.splice(6, 0, "TEST");
console.log(cells);

alert(cells);

如果您想看到速度的差异:

http://jsfiddle.net/DBhPB/1/

更新

一个更快的解决方案是预先分配数组大小,而不是使用push方法。

代码语言:javascript
复制
var data = ['D-0', 'D-1', 'D-2', 'D-3', 'D-4', 'D-5', 'D-6', 'D-7', 'D-8', 'D-9'];

var cells = new Array(data.length + 3);

var d = 0,
    insertions = 0,
    lenD = cells.length;


while (d < lenD) {

    if (d === 1 || d === 5 || d === 6) {
        cells[d] = 'test';
        insertions++;
        d++;
    }
    else
     {
     cells[d] = data[d-insertions];
     d++;
     }    
}

alert(cells);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18893766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档