亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Javascript 中按行和列拆分字符串

如何在 Javascript 中按行和列拆分字符串

慕萊塢森 2022-12-22 09:36:01
我有一個帶有兩個定界符的下面的字符串。“|” 用于行,“*”用于列。我想知道如何在 JS 代碼中按行和列拆分這些字符串"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|"
查看完整描述

6 回答

?
ITMISS

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);


查看完整回答
反對 回復 2022-12-22
?
MMTTMM

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("*");

}


查看完整回答
反對 回復 2022-12-22
?
交互式愛情

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);


查看完整回答
反對 回復 2022-12-22
?
郎朗坤

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);


查看完整回答
反對 回復 2022-12-22
?
qq_笑_17

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);


查看完整回答
反對 回復 2022-12-22
?
牧羊人nacy

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]]



查看完整回答
反對 回復 2022-12-22
  • 6 回答
  • 0 關注
  • 243 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號