Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将同一数组中的对象由两个具有不同键的对象合并_Javascript_Arrays_Reactjs - Fatal编程技术网

Javascript 将同一数组中的对象由两个具有不同键的对象合并

Javascript 将同一数组中的对象由两个具有不同键的对象合并,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我有一系列的替身 const data = [ -0.003,-8.178509172818559E-16, 0.002,-1.3576469946421737E-15, 0.007,-1.2329107629591376E-1] 我想把它们用在我的生活中 react vis中要插入的数据的语法为 {x: -0.003, y: -8.178509172818559E-16}, {x: 0.002,

我有一系列的替身

const data = [
-0.003,-8.178509172818559E-16,
0.002,-1.3576469946421737E-15,
0.007,-1.2329107629591376E-1]
我想把它们用在我的生活中

react vis中要插入的数据的语法为

                        {x: -0.003, y: -8.178509172818559E-16},
                        {x: 0.002, y: -1.3576469946421737E-15},
我想做同样的事情

所以我做了索引,然后分配了x和y值


    let preparedData = Object.assign({}, data);
    let preparedData2 = Object.keys(preparedData).map((keyName =>
    {
        const newKey = keyName % 2 === 0 ? 'x' : 'y';
        return { [newKey] : preparedData[keyName] };
    }));

所以我的数组看起来像:


0: {x: -0.003}
1: {y: -8.178509172818559e-16}
2: {x: 0.002}
3: {y: -1.3576469946421737e-15}
4: {x: 0.007}

我想按x和y对它们进行分组,而不使用边库。
我尝试了reduce,但运气不佳,非常感谢您的任何帮助

您可以分割两个项目,将数组分解为
x
y
,并为推送对象获取快捷属性

var数据=[-0.003,-8.178509172818559E-16,0.002,-1.3576469946421737E-15,0.007,-1.2329107629591376E-1],
结果=[],
i=0;
而(i

.as console wrapper{max height:100%!important;top:0;}
您可以分割两个项目,将数组分解为
x
y
,并为推送的对象提取简短属性

var数据=[-0.003,-8.178509172818559E-16,0.002,-1.3576469946421737E-15,0.007,-1.2329107629591376E-1],
结果=[],
i=0;
而(i

.as控制台包装{max height:100%!important;top:0;}
交替收集x和y

const数据=[
-0.003,
-8.178509172818559e-16,
0.002,
-1.3576469946421737e-15,
0.007,
-1.2329107629591376e-1
];
//使用for循环:
常量结果=[];
对于(设i=0;i{
如果(索引%2==0){
常量数据={x:xy};
arr.push(数据);
}否则{
arr[数学楼层(索引/2)]。y=xy;
}
返回arr;
}, []);
console.log(result1)

.as控制台行{color:blue!important}
交替收集x和y

const数据=[
-0.003,
-8.178509172818559e-16,
0.002,
-1.3576469946421737e-15,
0.007,
-1.2329107629591376e-1
];
//使用for循环:
常量结果=[];
对于(设i=0;i{
如果(索引%2==0){
常量数据={x:xy};
arr.push(数据);
}否则{
arr[数学楼层(索引/2)]。y=xy;
}
返回arr;
}, []);
console.log(result1)

。作为控制台行{color:blue!important}
谢谢,很好,但循环不是ES6风格,我的意思是有效但不现代。非常感谢。谢谢你的努力!这个对我简单的头脑来说太复杂了;谢谢,很好,但循环不是ES6风格,我的意思是有效但不现代。非常感谢。谢谢你的努力!这个对我简单的头脑来说太复杂了;太好了,谢谢!只是一个问题:const data={x:xy};-这是什么意思?x来自哪里?太好了,谢谢!只是一个问题:const data={x:xy};-这是什么意思?x来自哪里?