Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除“最后一个实例”之前或之后的字符;短语;_Javascript - Fatal编程技术网

Javascript 删除“最后一个实例”之前或之后的字符;短语;

Javascript 删除“最后一个实例”之前或之后的字符;短语;,javascript,Javascript,我有一根这样的绳子 let s = "key e3093e239o0303eje2309\nkey 2390923239239023\nobject 94238923892332\nfile 329239083290239023"; 这是JSONSTRINGIFI从文件中提取的。我需要将这些数据组织成{key:value}对象并将它们分开。例如,我需要 {key:e3093e239o0303eje2309}和{object:94238923892332} 等等 我认为最好的

我有一根这样的绳子

let s = "key e3093e239o0303eje2309\nkey 2390923239239023\nobject 94238923892332\nfile 329239083290239023";
这是JSONSTRINGIFI从文件中提取的。我需要将这些数据组织成{key:value}对象并将它们分开。例如,我需要

{key:e3093e239o0303eje2309}和{object:94238923892332}

等等

我认为最好的(不幸的是很长的)方法是把绳子断开

假设“key”之后的每个数字组合都有40个字符长,那么有没有办法在“key”最后一次出现后删除每个字符[41]索引?那么指针将移动41个位置到键的右边(占空格),并删除它后面的所有内容

此外,如果可能,我是否可以删除第一次出现“object”之前的所有内容以及上次出现object之后的所有[41]位置,依此类推


不确定我的想法是否正确…

您可以这样做:使用\n拆分字符串,然后获取键值对

var s = "key e3093e239o0303eje2309\nkey 2390923239239023\nobject 94238923892332\nfile 329239083290239023"


stringToObj = () => {
    var arr = []

    s.split('\n').forEach(e => {
        let obj = {}
        obj[e.split(' ')[0]] = e.split(' ')[1]
        arr.push(obj)
    })

    return arr
}


let pairs = stringToObj(s)
console.log(pairs)



您可以这样做,使用\n拆分字符串,然后获取键值对

var s = "key e3093e239o0303eje2309\nkey 2390923239239023\nobject 94238923892332\nfile 329239083290239023"


stringToObj = () => {
    var arr = []

    s.split('\n').forEach(e => {
        let obj = {}
        obj[e.split(' ')[0]] = e.split(' ')[1]
        arr.push(obj)
    })

    return arr
}


let pairs = stringToObj(s)
console.log(pairs)



尝试仅使用简单for/loop来提高性能

const s=“密钥e3093e239o0303eje2309\nkey 239092239023\nobject 94238923892332\n文件329239083290239023”;
常量finalObject={};
让isKey=true;
让currentValue='';
让currentKey='';
for(设i=0;iconsole.log(finalObject)尝试仅使用简单for/loop来提高性能

const s=“密钥e3093e239o0303eje2309\nkey 239092239023\nobject 94238923892332\n文件329239083290239023”;
常量finalObject={};
让isKey=true;
让currentValue='';
让currentKey='';
for(设i=0;iconsole.log(finalObject)正确编辑以反映这一点。虽然这不是问题的核心,但从解析的角度来看,键值对的分解逻辑是
s.split('\\n').map(it=>it.split('')
可以编辑以反映这一点。虽然不是问题的核心,但从解析的角度来看,键值对的分解逻辑是
s.split('\\n').map(it=>it.split('')