在那一刻,我发现自己陷入了试图压扁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);
}, []);
Run Code Online (Sandbox Code Playgroud)
与concat
data = [].concat.apply([], enc);
Run Code Online (Sandbox Code Playgroud)
并通过一个功能
function flatten(arr) {
return arr.reduce(function (flat, toFlatten) {
return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);
}, []);
}
Run Code Online (Sandbox Code Playgroud)
但到目前为止还没有任何快乐,它不断回归阵列.任何人都可以指出我正确的方向并解释为什么会这样?
-EDIT-底线:我需要它来返回一个常规的Array对象,就像未键入的起始对象一样.