我是javascript初学者。我想创建数组为1,2,3,4,5
但我得到了o / p,1,2,3,4,5
我在javascript中尝试使用.split(),但我没有得到所需的输出。
var string="testrating_1testrating_2testrating_3testrating_4testrating_5";
var temp = new Array();
temp = string.split("testrating_");
for (a in temp ) {
temp[a] = temp[a];
}
答案 0 :(得分:3)
你可以这样做:
var string = "testrating_1testrating_2testrating_3testrating_4testrating_5",
temp = string.split('testrating_');
temp.shift(); //remove fist item which is empty
console.log(temp); //["1", "2", "3", "4", "5"]
答案 1 :(得分:2)
temp
的实际值为["","1","2","3","4","5"]
。发生这种情况的原因是.split
和以分隔符开头的字符串。
如果您始终知道分隔符将位于字符串的开头,则可以执行此操作,这将删除数组的第一个元素:
temp = string.split("testrating_").slice(1);
答案 2 :(得分:1)
你可以试试这个......
<!DOCTYPE html>
<body>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction()
{
var string="testrating_1testrating_2testrating_3testrating_4testrating_5";
var temp = [];
temp = string.split("testrating_");
var tempNew=[];
for (a in temp ) {
if(temp[a]!==''){
tempNew.push(temp[a]);
}
}
alert(tempNew);
}
</script>
</body>
</html>
答案 3 :(得分:1)
你得到的是1,2,3,4,5,因为在你正在分离的testrating_之前,字符串的开头没有字符。
您可以从第一个位置删除testrating_,如下面的语句
var str="1testrating_2testrating_3testrating_4testrating_5";
str.split("testrating_")
或者您可以在从数组
获取结果后从第一个索引中删除字符var str="testrating_1testrating_2testrating_3testrating_4testrating_5";
str.split("testrating_").slice(1);
答案 4 :(得分:0)
试试这个:
var string = "testrating_1testrating_2testrating_3testrating_4testrating_5";
var temp = string.split("testrating_").join("").split("").join();
console.log(temp);
也可以这样做:
var temp = string.replace(/testrating_/g,"").split("").join();
或只是:
var string = "testrating_1testrating_2testrating_3testrating_4testrating_5";
var temp = string.match(/[\d]/g); //your regex here
console.log(temp);
不确定性能。
答案 5 :(得分:0)
var string="testrating_1testrating_2testrating_3testrating_4testrating_5";
// Split and remove first entry and return an array
var final = string.split("testrating_").slice(1);
$('#out').text(JSON.stringify(final));
答案 6 :(得分:0)
这样做:
<!DOCTYPE html>
<body>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction()
{
var string="testrating_1testrating_2testrating_3testrating_4testrating_5";
var temp = new Array();
temp = string.split("testrating_");
var output = new Array();
for (x = 0; x < temp.length; x++) {
output[x - 1] = temp[x];
}
alert(output);
}
</script>
</body>
</html>
答案 7 :(得分:0)
您可以随时使用.splice
:
var string="testrating_1testrating_2testrating_3testrating_4testrating_5";
temp = string.split("testrating_"); // temp = ["","1","2","3","4","5"]
temp.splice(0,1) // temp = ["1","2","3","4","5"]
这里的拼接是指数组中的第一个值(索引#0),并从该点移除一个值,即空字符串“”。
为了给出更多解释,你可以使用splice删除空字符串和“1”,如下所示:
temp.splice(0,2) // temp = ["2","3","4","5"]
请记住,splice会直接影响它所调用的数组,并返回一个已删除的值数组。所以如果你做了以下事情:
values = temp.splice(0,2) // values=["","1"] temp=["2","3","4","5"]
此外,在此示例中,以下列方式创建新数组temp = new Array();
是多余的,因为string.split()
有效地创建了一个数组并使用已拆分的值填充它。请记住这一点。希望这有助于并欢迎编程世界!