0

我是 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];
}

小提琴

4

8 回答 8

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"]
于 2013-08-10T05:24:21.130 回答
2

temp的实际值为["","1","2","3","4","5"]。这是因为.split和以分隔符开头的字符串。

如果您始终知道分隔符将位于字符串的开头,则可以这样做,这会删除数组的第一个元素:

temp = string.split("testrating_").slice(1);
于 2013-08-10T05:26:48.943 回答
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);
于 2013-08-10T05:38:58.197 回答
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>

JSFiddle

于 2013-08-10T05:29:15.677 回答
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"]

splice 在这里所做的是转到数组中的第一个值(索引 #0)并从该点删除一个值,该值将是空字符串“”。

为了提供更多解释,您可以使用 splice 删除空字符串和“1”,如下所示:

temp.splice(0,2) // temp = ["2","3","4","5"]

请记住,拼接直接影响它被调用的数组并返回一个被删除的值数组。因此,如果您执行以下操作:

values = temp.splice(0,2) // values=["","1"] temp=["2","3","4","5"]

此外,在此示例中,以以下方式创建新数组temp = new Array();是多余的,因为string.split()有效地创建了一个数组并用拆分的值填充它。请记住这一点。希望这会有所帮助,欢迎来到编程世界!

于 2013-08-10T05:50:32.530 回答
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);

虽然不确定性能。

于 2013-08-10T05:26:50.857 回答
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));
于 2013-08-10T05:27:44.507 回答
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>
于 2013-08-10T05:44:52.033 回答