免责声明:我觉得这可能被理解为一个简单的“我如何展平数组”或“如何对字符串进行数组化”。这不是那种类型的问题。(现在,我觉得有人应该已经问过了,尽管有上述问题,但我没有幸运地找到它。
在我的代码中,我可以接收带有消息的字符串或带有消息的字符串数组。这是一个我无法改变的糟糕设计。为了向用户呈现所有消息(无论是单个消息还是一堆消息),我正在执行以下操作。
let data = error.value;
if (typeof (data) === "string")
data = [data];
data.forEach(_ => this.messages.push({ type: "danger", contents: _ }));
我觉得这个守卫不方便使用 if 来检查它是否不是数组并使其如此。我更希望看到将字符串转换为数组,将数组转换为矩阵,然后将它们映射到一维数组(即平衡维度)的东西。
我将如何将数组展平为 X 维(而不是将数组展平为Y 维?
例子:
“噗”-> [“噗”]
尽管
[“噗”,“摇”,“屋顶”] -> [“噗”,“摇”,“屋顶”]
您可以使用Array.isArray()并执行以下操作:
let data = Array.isArray(error.value) ? error.value : [ error.value ];
data.forEach(contents => this.messages.push({ type: "danger", contents }));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句