我有一个如下所示的数组:
const difficulties = [
[true, true],
[true],
[true, true, true],
[true]
]
我想要做的是使用Ramda对数组执行转换,以便每个子数组都填充false
,如下所示:
[
[true, true, false],
[true, false, false],
[true, true, true],
[true, false, false]
]
我将如何做到这一点?
答案 0 :(得分:2)
使用普通js,您可以找到最大数组长度,并使用mysql_query
填充内部数组。
fill()

答案 1 :(得分:2)
使用Ramda,您可以使用R.times
和R.propOr
:
const difficulties = [
[true, true],
[true],
[true, true, true],
[true]
];
let difficultiesFilled = R.map(e => R.times(i => R.propOr(false, i, e), 3), difficulties);
console.log(difficultiesFilled);

<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.24.1/ramda.min.js"></script>
&#13;
如果数组的最大长度未知,您可以这样做:
let maxLength = R.reduce(R.maxBy(R.length), [], difficulties);
并使用它代替3
。
答案 2 :(得分:1)
为所有数组提供.length
3
和.fill()
个额外广告位。
for (const a of difficulties) {
const orig = a.length;
a.length = 3;
a.fill(false, orig);
}
有许多不同的方法可以实现这一目标。以上只是一个。在练习中尝试其他方法是一个很好的练习,因为这是一项非常简单的任务。