gpt4 book ai didi

javascript - 我怎样才能让我的函数处理多个字符串数组?

转载 作者:行者123 更新时间:2023-12-01 17:15:28 24 4
gpt4 key购买 nike

我一直在做一些功课来复制一个像函数一样的 json 解析,目前我写了一个函数如下:

var arr = '[a, [a, bjng],  n]'
var intoArray = function(string) {
if (string.length <= 2) {
return [];
}
var resultsArr = [];
var toJoin = [];
var simpArr = string.slice(1, string.length - 1).replace(/['"]+/g, '').replace(/[' '']+/g, '').split(',');
for (var a = 0; a < simpArr.length; a++) {
if (simpArr[a].includes('[')) {
while (!simpArr[a].includes(']')) {
toJoin.push(simpArr[a]);
a++;
}
}
if (simpArr[a].includes(']')) {
toJoin.push(simpArr[a]);
}
}
var joined = toJoin.join(',')
var joint = joined.slice(1, joined.length - 1).replace(/['"]+/g, '').replace(/[' '']+/g, '').split(',')
for (var a = 0; a < simpArr.length; a++) {
if (!toJoin.includes(simpArr[a])) {
resultsArr.push(simpArr[a])
}
if (simpArr[a] === toJoin[0]) {
resultsArr[a] = joint
}
}

return resultsArr
};

console.log(intoArray(arr))

运行时,它会将此字符串 '[a, [a, bjng], n]'(这只是一个大字符串)转换为 [ 'a', [ 'a ', 'bjng' ], 'n' ](这是一个包含多个字符串的数组和另一个数组,这是期望的行为)。然而,当示例字符串内部有多个数组时,如 '[a, [a, bjng],[c] , n]' 结果是它只是一个更大的数组像 [ 'a', [ 'a', 'bjng]', '[c' ], 'n' ] (注意它认为 '[a 而不是创建两个数组' trough 'c]' 是一个大数组),我仍在学习,所以一些见解将不胜感激,或者如果有人对我如何调整它来处理多个数组有一些想法!!!或者更好的实现方式?

最佳答案

逻辑与我上次对您类似问题的回答相同here , 除了它使用连续字符 block 而不是单个字符来处理长度超过 1 的字符串。

const string = '[a, [a, bjng],  n]'.slice(1, -1);
const chunks = string.match(/\w+|[\[\]|,| ]/g);

const array = [];
let currArr = array;

for (const chunk of chunks) {
/\w/.test(chunk) && currArr.push(chunk);
chunk == ']' && (currArr = array);
if (chunk == '[') {
currArr = [];
array.push(currArr);
}
}

console.log(array); // [ 'a', [ 'a', 'bjng' ], 'n' ]

关于javascript - 我怎样才能让我的函数处理多个字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63180642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com