Mig*_*ens 7 javascript arrays ecmascript-6
I'm trying to create a matrix in Javascript, but one which has predefined keys for the X and Y axis.
For example I have the following keys
const x = [2,4,6,8]
const y = [10,20,40,60,80]
Run Code Online (Sandbox Code Playgroud)
I found the following snippet which creates an empty two dimensional array with 4 rows and 5 columns
[...Array(4)].map(x=>Array(5).fill(0))
Run Code Online (Sandbox Code Playgroud)
I'm wondering if it's possible to create these arrays (objects), but using provided keys to go with it.
So the end result would look like this.
{
2 => {10 => 0, 20 => 0, 40 => 0, 60 => 0, 80 => 0}
4 => {10 => 0, 20 => 0, 40 => 0, 60 => 0, 80 => 0}
6 => {10 => 0, 20 => 0, 40 => 0, 60 => 0, 80 => 0}
8 => {10 => 0, 20 => 0, 40 => 0, 60 => 0, 80 => 0}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过循环和减少数据来创建所需的对象。
的回调Array#reduce将累加器作为第一个参数,这里是一个对象,将迭代数组的值作为第二个参数。
作为在startValue的reduce,它需要一个(种空)对象,并usdes这个对象添加属性。为了使该对象(即累加器)为下一个循环(和最终结果)做好准备,必须将其返回。
var x = [2, 4, 6, 8],
y = [10, 20, 40, 60, 80],
result = x.reduce((r, k) => {
r[k] = y.reduce((q, l) => {
q[l] = 0;
return q;
}, {});
return r;
}, {});
console.log(result);Run Code Online (Sandbox Code Playgroud)