2016-07-29 56 views
-1

创建阵列我已经以下代码:的Javascript从字符串

var selector="a,b,c/m,n", 
property = "width,height/font-size"; 

欲组的每个组字符串(由斜线分开)到新的数组。

,所以我会(基本上)这样结束了:

var selector_array1 = [a,b,c]; 
var selector_array2 = [m,n]; 
---- 

var property_array1 = [width,height]; 
var property_array2 = [font-size]; 
.... 

,所以我最终会与2 for循环(我认为),如:

for(outer loop){//for each selector array 
    for(inner loop){//for each item in selector array apply each property in property array 

    } 
} 

请记住它可以只有1个值/像属性(所以没有正斜杠分裂):

var selector="a/m", 
property = "width/font-size"; 

或这样的:

var selector="a", 
property = "width"; 
+0

什么是从'选择= “A”'输出?一个数组''“a”]'和一个空数组''''?你仍然可以使用'.split()'。 – nnnnnn

+0

结果数组必须包含字符串或变量? var selector_array1 = [a,b,c];'?中的'a,b,c'是什么? – alexmac

+0

'var selector =“a,b,c/m,n”,arr = selector.split(“/”)。map(e => e.split(“,”));的console.log(ARR);' – Redu

回答

3

您仍然可以在没有斜线的情况下使用split。只需在斜杠上分割一次,然后用逗号分割这些结果。

function extractData(input) { 
 
    // Separate by /'s 
 
    return input.split('/') 
 
    .map(function(str) { 
 
     // For each of the new strings, split them on commas 
 
     return str.split(','); 
 
    }); 
 
} 
 

 
var data = extractData('a,b,c/width,height'); 
 
console.log(data[0].toString(), '|', data[1].toString()); 
 

 
data = extractData('a,b,c'); 
 
console.log(data[0].toString()); 
 

 
data = extractData('a/width,height'); 
 
console.log(data[0].toString(), '|', data[1].toString()); 
 

 
data = extractData('a/width'); 
 
console.log(data[0].toString(), '|', data[1].toString());

0

要做到这一点,你需要使用String原型的分割方法:

var selector="a,b,c/m,n", 
 
property = "width,height/font-size"; 
 

 
function splitString(s){ 
 
    // Split the string with the character/
 
    // And loop through the array 
 
    return s.split('/').map(function(stringWithComa){ 
 
    // Return the result of the string split 
 
    return stringWithComa.split(',') 
 
    }) 
 
} 
 

 
console.log(splitString(selector)); 
 
console.log(splitString(property));

希望它帮助;)不要犹豫,问问题;)

0

以下是使用split()和数组的方法。

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
\t <title></title> 
 
</head> 
 
<body> 
 

 
<script type="text/javascript"> 
 
var selector="a,b,c/m,n"; 
 
var property = "width,height/font-size"; 
 

 
var selector_array1 = new Array(); 
 
var selector_array2 = new Array(); 
 

 
var property_array1; 
 
var property_array2; 
 

 
var selectors = selector.split('/'); 
 
var properties = property.split('/'); 
 
for(var i = 0; i<selectors.length; i++) { 
 
\t selectors[i] = selectors[i].split(','); 
 
\t for(var j = 0; j<selectors[i].length;j++) { 
 
\t \t if(i==0) 
 
\t \t \t selector_array1.push(selectors[i][j]) 
 
\t \t else 
 
\t \t \t selector_array2.push(selectors[i][j]) 
 
\t } 
 
} 
 
alert(selector_array1); 
 
alert(selector_array2); 
 
</script> 
 
</body> 
 
</html>