javascript - 在中间添加字符串生成序列号

标签 javascript jquery arrays algorithm for-loop

正在为我的一个客户编写 JavaScript 插件,在此我需要生成一系列字符串,如“1,2,D,3,4”/“1,D,2,3,4,5,6” .长度可以是 n 个数字。 “D”位置存储在单独的字符串中,如 2,4。在这里,基于这个长度,我们想要生成如下所示

String = 1,2,3,4,5 D 位置:2,4 最终结果应该是:1,D,2,D,3

我试过的东西,

 var deletedString = "2,4"
    var Values = "1,2,3,4,5,6";
    var lengthFromValues = SplitString_ToArray(Values).length;
    var deletedArray = splitString_ToArray(deletedString);
    var temp_arr = [];
    for(var i = 1; i <= lengthFromValues; i++) {        
        if(deletedArray[i-1] > 0) {
          temp_arr.push("D");
        } else temp_arr.push(i);
    }
alert(temp_arr.toString());

注意:SplitString_ToArray 函数是一个自写函数,它将字符串转换(拆分)为数组。

有人会帮助我吗?

最佳答案

检查这个我已经稍微改变了一个逻辑。实际上,您可以使用 deletedString 值替换 Values 中的值,然后将其转换为数组,然后将数组放回字符串。 jsFiddle

var deletedString = "2,4"
var Values = "1,2,3,4,5,6";
var deletedArray = SplitString_ToArray(deletedString);
var valuesArray = SplitString_ToArray(Values);
var finalLength = valuesArray.length;

for (i=0; i< deletedArray.length; i++){
    console.log(deletedArray[i]);
    var idxToReplace = parseInt(deletedArray[i]-1); // substract 1, because your indexes are 1-based
    valuesArray.splice(idxToReplace,0,'D');
}

// back to string
valuesArray = valuesArray.slice(0, finalLength);
var result = valuesArray.join();
alert(result);

function SplitString_ToArray(inString){
    var result = inString.split(',');
    console.log(result);
    return result;
}

关于javascript - 在中间添加字符串生成序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25094211/

相关文章:

python - 可视化 numpy 数组/矩阵

c++ - 大括号括起来的初始化列表

javascript - php ajax 可以工作,也可以不工作

javascript - Javascript/jQuery 中的并行 Ajax 调用

c++ - 将整数转换为字符缓冲区以进行串行通信...?

javascript - 模态窗口不出现

Jquery ajax 不会删除以前的 div 样式

javascript - AWS S3 同步与 JS/Node 开发工具包

javascript - 如何使用 javascript 在 div 内附加脚本

javascript - 在递归函数中,在哪里存储结果?