gpt4 book ai didi

javascript - .flat() 不是函数,怎么了?

转载 作者:可可西里 更新时间:2023-11-01 02:17:20 25 4
gpt4 key购买 nike

下面的代码

function steamrollArray(arr) {
// I'm a steamroller, baby
return arr.flat();
}

steamrollArray([1, [2], [3, [[4]]]]);

返回

arr.flat is not a function

我在 FirefoxChrome v67 中试过,结果相同。

怎么了?

最佳答案

flat 方法是 not yet implemented在常见的浏览器中(仅 Chrome v69、Firefox Nightly 和 Opera 56)。这是一项实验性功能。因此您还不能使用它

您可能希望拥有自己的 flat 函数:

Object.defineProperty(Array.prototype, 'flat', {
value: function(depth = 1) {
return this.reduce(function (flat, toFlatten) {
return flat.concat((Array.isArray(toFlatten) && (depth>1)) ? toFlatten.flat(depth-1) : toFlatten);
}, []);
}
});

console.log(
[1, [2], [3, [[4]]]].flat(2)
);

代码取自here通过 Noah Freitas最初实现为在未指定 depth 的情况下展平数组。

关于javascript - .flat() 不是函数,怎么了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50993498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com