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

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

通過分隔符分割緩沖區

通過分隔符分割緩沖區

泛舟湖上清波郎朗 2023-11-02 16:58:39
如何通過分隔符將緩沖區拆分為數組const array = split(buffer, '=')在 Go 中我可以這樣做import "bytes"parts := bytes.Split(buffer, []byte("="))如何在 Nodejs 中實現相同的功能?
查看完整描述

3 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

不幸的是,至少我知道沒有內置的方法。嘗試這個


function splitBufToArr(buf, splitStr) {

    let start = 0;

    let bufArr = [];

    let isfound = true;

    while (isfound) {

        const idx = buf.indexOf(splitStr, start);

        if (idx === -1) {

            isfound = false;

            if (bufArr.length > 0)

                bufArr.push(buf.slice(idx));

            break;

        }

        const chunk = buf.slice(start, idx);

        start = idx + 1;

        bufArr.push(chunk);

    }

    return bufArr;

}


const buf = Buffer.from('1,5,8,9');

console.log(splitBufToArr(buf, ','));


查看完整回答
反對 回復 2023-11-02
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

根據您的需要,您可能最好使用字符串,因為它具有分割功能。


但是如果你確實想將東西保留為緩沖區而不是字符串,使用 slice 和 indexOf,你可以創建一個簡單的 split 函數,..


例如。


function splitBuffer(b, splitWith) {

    const ret = [];

    let s = 0;

    let i = b.indexOf(splitWith, s);

    while (i >= 0) {

        if (i >= 0) {

            ret.push(b.slice(s, i));

        }

        s = i + 1;

        i = b.indexOf(splitWith, s);

    }

    ret.push(b.slice(s));

    return ret;

}


//test

const b = Buffer.from('one=two=three');

console.log(splitBuffer(b, '='))

//result = [ <Buffer 6f 6e 65>, <Buffer 74 77 6f>,

//<Buffer 74 68 72 65 65> ]


查看完整回答
反對 回復 2023-11-02
?
www說

TA貢獻1775條經驗 獲得超8個贊

在下面的示例中,我們使用庫iter-ops來處理Buffer可迭代對象:


import {pipe, split} from 'iter-ops';


const i = pipe(

? ? buffer,

? ? split(value => value === 0x3D) // 0x3D = code for '='

);


console.log([...i]); //=> split chunks of buffer



查看完整回答
反對 回復 2023-11-02
  • 3 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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