JavaScript-在不影响索引的情况下将元素插入数组?

JavaScript-在不影响索引的情况下将元素插入数组?,javascript,arrays,regex,Javascript,Arrays,Regex,我现在正在研究这样的问题,试图弄清楚如何处理索引。问题是: 我有一个字符串:这太棒了 使用的基本操作如下: var str = "thisIsGreat"; str = str.split(''); //Making it an array ..... str = str.join(''); //String it back again console.log(str); 所需输出:[“t”、“h”、“i”、“s”、“i”、“s”、“s”、“G”、“r”、“e”、“a”、“t”] 我很难在不

我现在正在研究这样的问题,试图弄清楚如何处理索引。问题是:

我有一个字符串:
这太棒了
使用的基本操作如下:

var str = "thisIsGreat"; 
str = str.split(''); //Making it an array
.....
str = str.join(''); //String it back again
console.log(str);
所需输出:
[“t”、“h”、“i”、“s”、“i”、“s”、“s”、“G”、“r”、“e”、“a”、“t”]

我很难在不影响索引的情况下在这些单词之间插入空格。我尝试了类似的方法,但没有成功

for (var i = 0; i < str.length; i++){
     if (str[i]+1 == (str[i].toUpperCase())+1)
      str[i] = " ";
}
for(变量i=0;i
有没有办法解决这个问题?有什么想法吗?

用你自己的逻辑

var str = "thisIsGreat"; 
str = str.split(''); //Making it an array
var result = [];
for (var i in str){
 if (str[i]+1 == (str[i].toUpperCase())+1){
  result.push(" ");
  result.push(str[i]);
 }else{
  result.push(str[i]);
  }
}
result = result.join(''); //String it back again
console.log(result);
如果不希望结果为字符串,只需删除最后的连接即可


您的问题不是很清楚,如果您只想在每个大写字母前插入一个空格,使用正则表达式很容易:

替换(/[A-Z]/g,“$&”);
警报(r)
您可以使用带正向前瞻的替换

var str=“thisIsGreat”;
str=str.replace(/(?=[A-Z])/g'').split('');

document.write(''+JSON.stringify(str,0,4)+'');
只需反转
循环即可

'thisIsGreat'.replace(/([A-Z])/g,' $1').split('').join('", "')
//Output: "t", "h", "i", "s", " ", "I", "s", " ", "G", "r", "e", "a", "t"

你需要使用相同的数组吗?你不能生成另一个数组吗?是的,如果需要,我可以生成一个新数组..有什么想法吗用于获取对象的所有属性,而不是数组的元素。你到底想实现什么?@It-Z我的错误,使用了错误的循环..现在编辑..不客气。顺便说一句,尼娜的答案更准确。谢谢你坚持我的逻辑!效果很好!!
'thisIsGreat'.replace(/([A-Z])/g,' $1').split('').join('", "')
//Output: "t", "h", "i", "s", " ", "I", "s", " ", "G", "r", "e", "a", "t"