2017-09-14 78 views
1

我有一個插入帶有格式化2D數組內容的表格的網頁。它看起來像這樣(字符串):如何將2D數組中的內容拆分爲另一個2D數組Javascript

類型[separator1]產品1名稱[separator1]產品1價格[separator1]這是產品1,作爲描述[separator2]輸入[separator1]產品2名稱[separator1]產物2價格[separator1]這是產品2,描述如下

正如你所看到的,我有一個分隔符(格式),它們是[separator1]和[separator2]。它是由普通的2D陣列轉換,當我操縱它作出一些二維數組,我得到這個:現在

[ 
"type[separator1]product1 Name[separator1]product 1 price[separator1]This is product1, as description", 
"type[separator1]product2 Name[separator1]product 2 price[separator1]This is product2, as description" 
] 

,你可以看到,[separator1]是分離的數組內容。 [separator2]用於分隔數組。你也可以看到,在我的blockquoted二維數組格式的內容,描述有昏迷,這成爲一個問題,因爲我想拆分內部數組,因此我可以得到像array2 [1],array2 [2]等但是我遇到了問題,它說分裂不是一個功能。我想從該分離器訪問該2D陣列,所以我可以訪問ARRAY3 [0] [1]等從第一字符串

這是示例代碼

$('#tester').on('click', function() { 
 
\t var iContent = 'type[separator1]product1 Name[separator1]product 1 price[separator1]This is product1, as description[separator2]type[separator1]product2 Name[separator1]product 2 price[separator1]This is product2, as description'; 
 
\t var str1 = iContent.split('[separator2]'); 
 
\t var str2 = []; 
 
\t for (i=0; i<str1.length; i++) { 
 
\t \t str2.push(str1[i]); 
 
\t } 
 
\t //var str3 = str2.split('[separator1]'); 
 
\t console.log('str2[0]: ' + str2[0]); 
 
\t console.log('str2[1]: ' + str2[1]); 
 
\t for (i=0; i<str2.length; i++) { 
 
\t \t str3.push(str2[i]); 
 
\t } 
 
\t console.log('iContent: ' + iContent); 
 
\t console.log('str1: ' + str1); 
 
\t console.log('str2: ' + str2); 
 
\t console.log('str3: ' + str3); 
 
});

+0

也許這是一個好主意,使用[JSON](http://json.org/)(符號)在字符串中獲取數據。這將有助於輕鬆轉換回數組。 –

回答

3

爲了得到一個沒有分隔符的數組,你可以分割和映射分裂的叮咬。

var string = 'type[separator1]product1 Name[separator1]product 1 price[separator1]This is product1, as description[separator2]type[separator1]product2 Name[separator1]product 2 price[separator1]This is product2, as description', 
 
    result = string.split('[separator2]').map(function (s) { 
 
     return s.split('[separator1]'); 
 
    }); 
 
    
 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

太棒了!我忘了那張地圖。非常感謝,妮娜。有效 – Hernanda

相關問題