【发布时间】:2016-10-31 13:09:29
【问题描述】:
此刻我发现自己被困在试图展平 Uint8ClampedArray。
起始数组结构是data = [227, 138, 255…],在从类似enc = [Uint8ClampedArray[900], Uint8ClampedArray[900], Uint8ClampedArray[900]...] 的数组创建数组后,我尝试将其展平。
为此我尝试了许多方法/解决方案,但似乎没有一种有效:
MDN 建议的方法
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
return a.concat(b);
}, []);
带连接
data = [].concat.apply([], enc);
通过函数
function flatten(arr) {
return arr.reduce(function (flat, toFlatten) {
return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);
}, []);
}
但到目前为止没有任何乐趣,它一直按原样返回数组。任何人都可以指出我正确的方向并解释为什么会这样?
-编辑- 底线:我需要它返回一个常规的 Array 对象,比如未键入的起始对象。
【问题讨论】:
标签: javascript arrays multidimensional-array flatten