2017-09-14 79 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

相关问题