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;i console.log(finalObject)代码>尝试仅使用简单for/loop来提高性能
const s=“密钥e3093e239o0303eje2309\nkey 239092239023\nobject 94238923892332\n文件329239083290239023”;
常量finalObject={};
让isKey=true;
让currentValue='';
让currentKey='';
for(设i=0;i console.log(finalObject)代码>正确编辑以反映这一点。虽然这不是问题的核心,但从解析的角度来看,键值对的分解逻辑是s.split('\\n').map(it=>it.split('')
可以编辑以反映这一点。虽然不是问题的核心,但从解析的角度来看,键值对的分解逻辑是s.split('\\n').map(it=>it.split('')