gpt4 book ai didi

javascript - 从对象 ES6 创建键值数组

转载 作者:行者123 更新时间:2023-11-28 03:55:30 32 4
gpt4 key购买 nike

我有这个对象

var obj = {
'names-1-1': 0,
'names-1-2': 0.94,
'names-1-3': 0,
'names-2-1': 0.95,
'names-2-2': 0.96,
'names-2-3': 0.2,
'names-3-1': 0.96,
'names-3-2': 99999,
'names-3-3': 2.4
};

但是我需要一个数组(键,值),如下所示:

   0 :{
names-1-1 : 0
names-1-2 : 0.94
names-1-3 : 0
}
1 :{
names-2-1 : 0.95
names-2-2 : 0.96
names-2-3 : 0.2
}
2 :{
names-3-1 : 0.96
names-3-2 : 99999
names-3-3 : 2.4
}

其中 names-{index}-1 对其变量进行索引。如何使用 React 和 javascript ES6 来解决这个问题?

最佳答案

您可以使用Array#reduce生成数组的方法。

var obj = {  'names-1-1': 0,  'names-1-2': 0.94,  'names-1-3': 0,  'names-2-1': 0.95,  'names-2-2': 0.96,  'names-2-3': 0.2,  'names-3-1': 0.96,  'names-3-2': 99999,  'names-3-3': 2.4};

var res = Object.keys(obj) // get all the keys
// iterate to generate the result array
.reduce(function(arr, k) {

// get the index from property name using regex
// or use k.split('-')[1]
var i = k.match(/names-(\d+)/)[1];
// define index if not defined
arr[i - 1] = arr[i - 1] || {};
// set the property in the object
arr[i - 1][k] = obj[k];
// return the array reference
return arr;

// set initial value as an empty array
}, []);

console.log(res);

关于javascript - 从对象 ES6 创建键值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47580386/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com