Javascript 如何从特定数组中添加/求和所需的数组索引?
我有以下数据结构,这些数据需要按照“104”中数组的前两个索引的总和进行排序 我怎样才能做到这一点?有人能帮忙吗 这是我迄今为止尝试过的,但没有达到预期效果Javascript 如何从特定数组中添加/求和所需的数组索引?,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我有以下数据结构,这些数据需要按照“104”中数组的前两个索引的总和进行排序 我怎样才能做到这一点?有人能帮忙吗 这是我迄今为止尝试过的,但没有达到预期效果 let orgs = Object.keys(data); let options = []; let selection = orgs.forEach((data, d) => { data["104"].forEach((val, i) => { options[i].data.push(va
let orgs = Object.keys(data);
let options = [];
let selection = orgs.forEach((data, d) => {
data["104"].forEach((val, i) => {
options[i].data.push(val);
})
});
首先,我们需要将数据转换成数组进行排序 然后定义我们自己的
compare
函数作为我们的需求
最后,对数组进行排序
运行代码段以检查结果
解决方案:
var数据={
“组织1”:{
"102":[
0.1444,
0.1551,
0.2369,
0.3353,
0.1282
],
"104":[
0.309,
0.3483,
0.218,
0.0657,
0.059
]
},
“组织2”:{
"102":[
0.19444444444444448,
0.1388888888888889,
0.19444444444444448,
0.33333333333333326,
0.1388888888888889
],
"104":[
0.20588235294117646,
0.38235294117647056,
0.14705882352941177,
0.14705882352941177,
0.1176470588235294
],
},
“组织3”:{
"102":[
0.0967741935483871,
0.2903225806451613,
0.16129032258064516,
0.3548387096774194,
0.0967741935483871
],
"104":[
0.44,
0.24,
0.2,
0.04,
0.08
]
}
};
const transformedData=[];
Object.keys(数据).forEach(
f=>{
transformedData.push(数据[f]);
}
)
功能比较(a、b){
var arrA=a[“104”];
var arrB=b[“104”];
if(arrA[0]+arrA[1]arrB[0]+arrB[1]){
返回1;
}
返回0;
}
transformedData.sort(比较);
console.log(transformedData)代码>您的确切输出是什么?前两个索引始终为0和1…按升序或降序排序?@HereticMonkey抱歉,我的意思是说数组104中前两个索引的值,而不是实际的索引。@ZunayedShahriar按升序排序这并没有对结构进行排序,而是将结构更改为可以排序的结构,这不是OP要求的。@Hereticsmonkey,我现在很困惑。让我们看看OP是怎么说的。
let orgs = Object.keys(data);
let options = [];
let selection = orgs.forEach((data, d) => {
data["104"].forEach((val, i) => {
options[i].data.push(val);
})
});