如何像parseInt解析嵌套数组数字那样一步获取多层嵌套数组的字符串元素
实现原理说明
你之前能通过parseInt(x)直接拿到3,核心是JS的类型转换规则:当数组被传入需要原始值的方法时,会递归调用toString()方法,每一层只有一个元素的嵌套数组调用toString()后,会直接返回最内层元素的字符串形式,因此[[["3"]]].toString()的结果就是字符串"3",parseInt处理该字符串就能得到数字3。
可行方案
和parseInt的用法逻辑完全一致,直接使用String()构造方法即可一步拿到嵌套的字符串,不需要任何索引访问:
let x = [[["a"]]]; let res = String(x); console.log(res); // 输出 "a" // 也可以用更简洁的隐式转换写法,效果完全相同 let res2 = x + ""; console.log(res2); // 输出 "a"
注意事项
该方案仅适用于每一层嵌套数组都仅包含1个元素,且最内层元素为目标字符串的场景,如果某一层存在多个元素,toString()会用逗号拼接所有元素,无法直接得到目标值。
内容的提问来源于stack exchange,提问作者Sahil Kumar Singh
相关产品推荐
相关产品推荐

