我需要将字符串拆分为两级数组(或者更确切地说是内部数组和使用自动键的数组)。
说出字符串是:
项目10~项目11~项目12 ^项目20~项目21~项目23 ^
我希望它具有类似的结构 我知道php - hense结构
array(
[0]=> array(
'item 10',
'item 11',
'item 12',
),
[1]=> array(
'item 20',
'item 21',
'item 22',
),
)
所以...
第一次拆分看起来是这样吗?
function createDataArray(xData) {
xData.split("^");
--- WHAT DO I DO HERE? ---
}
非常感谢您的帮助
答案 0 :(得分:1)
是的,你可以使用split
和Array.reduce
来提出你的输出:
var input = 'item 10~item 11~item 12^ item 20~item 21~item 23^';
var splits = input.split(/\^\s*/).reduce(function(arr, item) {
if (item.length) {
arr.push(item.split('~'));
}
return arr;
}, []);
console.log(splits);

答案 1 :(得分:1)
另一种方法是进行拆分,然后进行地图+拆分:
var result = input
.split('^') // Is an array of strings
.map(function (str) { return str.split('~'); }); // Is an array of arrays
答案 2 :(得分:1)
您可以这样做,以获得所需的输出。
var str = 'item 10~item 11~item 12^ item 20~item 21~item 23^';
var arr = [];
str.split('^').forEach(function(v) {
if (v) {
arr.push(v.trim().split('~'));
}
});
console.log(arr);
答案 3 :(得分:1)
根据您的示例:
function createDataArray(xData) {
var q = xData.split("^"); //arr of arr
for (var i in q) {
q[i] = q[i].split('~');
}
console.log(q);
}