6 回答

TA貢獻1871條經驗 獲得超8個贊
您可以使用 split 函數兩次來創建嵌套數組:
let str = "1*264.75|2*4936.00|3*8230.76|4*8329.75|5*3106.25|6*3442.00|7*5122.50|10*77.00|11*7581.00|12*7573.25|13*3509.00|21*5246.50|24*4181.00|25*4961.25|52*34.00|";
let arr = str.split("|").map(r => r.split("*"));
console.log(arr);

TA貢獻1869條經驗 獲得超4個贊
也許有點過時,但同樣有效
var a ="1*264.75|2*4936.00|3*8230.76|4*8329.75|5*3106.25|6*3442.00|7*5122.50|10*77.00|11*7581.00|12*7573.25|13*3509.00";
var b = a.split("|");
var c = [];
for (i = 0; i < b.length; i++) {
c[i] = b[i].split("*");
}

TA貢獻1712條經驗 獲得超3個贊
您可以使用多個 delemiter 進行拆分。
const str = "1*264.75|2*4936.00|3*8230.76|4*8329.75|5*3106.25|6*3442.00|7*5122.50|10*77.00|11*7581.00|12*7573.25|13*3509.00|21*5246.50|24*4181.00|25*4961.25|52*34.00|"
const splitStr = str.split(/\*|\|/);
console.log(splitStr);

TA貢獻1921條經驗 獲得超9個贊
如果您想一次過一遍,這應該創建一個表示數組/列的嵌套數組結構。它也很粗糙,可能會稍微簡化一下。
const fullStr = "1*264.75|2*4936.00|3*8230.76|4*8329.75|5*3106.25|6*3442.00|7*5122.50|10*77.00|11*7581.00|12*7573.25|13*3509.00|21*5246.50|24*4181.00|25*4961.25|52*34.00|";
const arr = [[]];
for(let i = 0, str = ''; i < fullStr.length; i++){
if(fullStr[i] == '*') {
arr[arr.length - 1].push(str);
str = '';
continue;
}
if(fullStr[i] == '|') {
arr[arr.length -1].push(str);
// you could wrap this push statement in an if to determine if you are at the end of the string.
arr.push([]);
str = '';
continue;
}
str += fullStr[i];
}
console.log(arr);

TA貢獻1818條經驗 獲得超7個贊
這里已經有很多好的答案——這將返回一個具有行/列屬性的單元格對象數組:
let mystring = "1*264.75|2*4936.00|3*8230.76|4*8329.75|5*3106.25|6*3442.00|7*5122.50|10*77.00|11*7581.00|12*7573.25|13*3509.00|21*5246.50|24*4181.00|25*4961.25|52*34.00|";
let cells = mystring.split("|");
let results = [];
for (let i = 0; i < cells.length; i++) {
let cell = cells[i];
let cellData = cell.split("*");
results.push({
row: cellData[0],
col: cellData[1]
})
}
console.log(results);

TA貢獻1862條經驗 獲得超7個贊
const input = "1264.75|24936.00|38230.76|48329.75|53106.25|63442.00|75122.50|1077.00|117581.00|127573.25|133509.00|215246.50|244181.00|254961.25|52*34.00|"
// The filter is for removing empty rows
input.split("|").filter(val=>!!val).map(val => val.split("*").map(res=>parseFloat(res)))
結果會像
[[1264.75],[24936],[38230.76],[48329.75],[53106.25],[63442],[75122.5],[1077],[117581],[127573.25],[133509],[215246.5],[244181],[254961.25],[52,34]]
添加回答
舉報