为了账号安全,请及时绑定邮箱和手机立即绑定

在Javascript中,用逗号分隔并用括号括起来的字符串生成数组

在Javascript中,用逗号分隔并用括号括起来的字符串生成数组

BIG阳 2022-05-22 18:02:02
我正在尝试在某些条件下将字符串解析为 Javascript 中的数组:字符串中的每个逗号分隔不同的数组元素括号包围的元素是它们前面元素的子数组例子:total, limit, items(added_at, added_by)会变成[total, limit, items[added_at, added_by]]关于我为什么这样做的更多信息:我正在尝试使用 Mongoose 和 MongoDB 复制 spotify API 的限制字段逻辑仅获取曲目总数和请求限制: fields=total,limit点分隔符可用于指定非重复出现的字段,而括号可用于指定对象内重复出现的字段。例如,要仅获取加法器的添加日期和用户 ID: fields=items(added_at,added_by.id)使用多个括号深入到嵌套对象,例如: fields=items(track(name,href,album(name,href)))链接:https ://developer.spotify.com/documentation/web-api/reference-beta/#endpoint-get-playlists-tracks
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

这是通过将字符串分块为标记和堆栈运算符的一种方法:


function parseNestedList(str) {

    let pattern = /([^(),]*)([(),]?)/gm;

    let part, ret = [], stack = [], context = ret;


    while (((part = pattern.exec(str)) !== null) && (part[0].length > 0)) {

        if (part[1].length) { context.push(part[1]); } // Push token


        switch (part[2]) {

            case "(": // Descend

                stack.push(context);

                context.push(context = []);

                break;

            case ",": // Next

                continue;

            default: // Ascend

                context = stack.pop();

        }

    }


    return ret;

}


查看完整回答
反对 回复 2022-05-22
  • 1 回答
  • 0 关注
  • 244 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信