2016-07-29 50 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>