我有这个函数分配动态键给初始化的对象
function meanCluster(clusters) {
let initialized = {};
clusters.forEach(mean => {
initialized[mean] = [];
})
return initialized;
}
我有这些数据
const OneDimensionPoint = [22, 9, 12, 15, 10, 27, 35, 18, 36, 11]
现在我想将元素22、9和12赋值为我在meanCluster函数中初始化的变量的键,我的方法是下面的代码。
let mean = [OneDimensionPoint[0], OneDimensionPoint[1], OneDimensionPoint[2]]
meanCluster(mean)
当我console.log(meanCluster(mean))时,结果是这样的
{9: Array(0), 12: Array(0), 22: Array(0)}
得到的键值是9,12,22而不是22,9,12
我的对象已经排序了,我不想。我也想保持它作为数字,而不是字符串。
谁能告诉我为什么?您可以使用ES6 MAP:
const OneDimensionPoint = [22, 9, 12, 15, 10, 27, 35, 18, 36, 11] ;
let mean = [OneDimensionPoint[0], OneDimensionPoint[1], OneDimensionPoint[2]];
console.log(
mean.reduce((r,i)=>{
r.set(i,[])
return r;
}, new Map())
)