Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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 从对象ES6创建键值数组_Javascript_Arrays_Ecmascript 6 - Fatal编程技术网

Javascript 从对象ES6创建键值数组

Javascript 从对象ES6创建键值数组,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我有这个东西 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

我有这个东西

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
index是一个变量。 如何使用React&javascript ES6实现这一点?

自ECMA 5.1以来就一直存在

const obj = {
  test: 'some test',
  test2: 'another test'
};

const keys = Object.keys(obj); // ['test', 'test2']
或在ECMA 2017中增加了哪些

const obj = {
  test: 'some test',
  test2: 'another test'
};

const entries = Object.entries(obj);
// [['test', 'some test], ['test2', 'another test']]
自ECMA 5.1以来一直存在

const obj = {
  test: 'some test',
  test2: 'another test'
};

const keys = Object.keys(obj); // ['test', 'test2']
或在ECMA 2017中增加了哪些

const obj = {
  test: 'some test',
  test2: 'another test'
};

const entries = Object.entries(obj);
// [['test', 'some test], ['test2', 'another test']]
您可以这样做:

myObject = {
    "names-1-1": .5,
    "names-1-2": .3,
    "names-2-1": .1,
    "names-2-2": .6
}
var out = [];
for (var i in myObject) {
    var index = i.substr(6,1);
    out[index-1] = out[index-1] || {};
    out[index-1][i] = myObject[i];
}
console.log(out);
//[{"names-1-1":0.5,"names-1-2":0.3},{"names-2-1":0.1,"names-2-2":0.6}]
您可以这样做:

myObject = {
    "names-1-1": .5,
    "names-1-2": .3,
    "names-2-1": .1,
    "names-2-2": .6
}
var out = [];
for (var i in myObject) {
    var index = i.substr(6,1);
    out[index-1] = out[index-1] || {};
    out[index-1][i] = myObject[i];
}
console.log(out);
//[{"names-1-1":0.5,"names-1-2":0.3},{"names-2-1":0.1,"names-2-2":0.6}]
可以使用方法生成数组

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-3-1':0.96,'names-3-2':99999,'names-3-3':2.4};
var res=Object.keys(obj)//获取所有键
//迭代以生成结果数组
.减少(功能(arr,k){
//使用正则表达式从属性名获取索引
//或者使用k.split('-')[1]
var i=k.match(/names-(\d+)/)[1];
//如果未定义索引,请定义索引
arr[i-1]=arr[i-1]|{};
//在对象中设置属性
arr[i-1][k]=obj[k];
//返回数组引用
返回arr;
//将初始值设置为空数组
}, []);
控制台日志(res)您可以使用方法生成数组

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-3-1':0.96,'names-3-2':99999,'names-3-3':2.4};
var res=Object.keys(obj)//获取所有键
//迭代以生成结果数组
.减少(功能(arr,k){
//使用正则表达式从属性名获取索引
//或者使用k.split('-')[1]
var i=k.match(/names-(\d+)/)[1];
//如果未定义索引,请定义索引
arr[i-1]=arr[i-1]|{};
//在对象中设置属性
arr[i-1][k]=obj[k];
//返回数组引用
返回arr;
//将初始值设置为空数组
}, []);

控制台日志(res)将实际对象也粘贴到此处,而不是图像0:{names-1-1:0 names-1-2:0.94 names-1-3:0}(粗体)。1和2也是如此。创建键粘贴实际对象而不是图像的逻辑是什么0:{names-1-1:0 names-1-2:0.94 names-1-3:0}(粗体)。1和2也是如此。创建密钥的逻辑是什么