如何在javascript中将对象数组中的键名更改为值,将值更改为键名

如何在javascript中将对象数组中的键名更改为值,将值更改为键名,javascript,arrays,node.js,underscore.js,Javascript,Arrays,Node.js,Underscore.js,我有一组像这样的对象 [{ "First Name": "fname", "Last Name": "lname" }, { "Root cause": "root" }, { "Comapany Name": "company" }] [{ "fname": "First Name", "lname": "Last Name" }, { "root": "Root cause" }, { "company": "Comapan

我有一组像这样的对象

[{
    "First Name": "fname",
    "Last Name": "lname"
}, {
    "Root cause": "root"
}, {
    "Comapany Name": "company"
}]
 [{
    "fname": "First Name",
    "lname": "Last Name"
}, {
    "root": "Root cause"
}, {
    "company": "Comapany Name"
}]
我想把上面的对象数组转换成这样

[{
    "First Name": "fname",
    "Last Name": "lname"
}, {
    "Root cause": "root"
}, {
    "Comapany Name": "company"
}]
 [{
    "fname": "First Name",
    "lname": "Last Name"
}, {
    "root": "Root cause"
}, {
    "company": "Comapany Name"
}]
请任何人帮我一下。

这个应该可以

var arr = [ {"First Name":"fname", "Last Name":"lname"},
            {"Root cause":"root"},
            {"Comapany Name":"company"}
           ];            
var newArr = [];
for(var i = 0; i < arr.length; ++i) {
    var obj = {};
    for(key in arr[i]) {
        if (arr[i].hasOwnProperty(key)) {
            obj[arr[i][key]] = key;
        }
    }
    newArr.push(obj);
}
var arr=[{“First Name”:“fname”,“Last Name”:“lname”},
{“根本原因”:“根本原因”},
{“公司名称”:“公司”}
];            
var newArr=[];
对于(变量i=0;i
这应该可以

var arr = [ {"First Name":"fname", "Last Name":"lname"},
            {"Root cause":"root"},
            {"Comapany Name":"company"}
           ];            
var newArr = [];
for(var i = 0; i < arr.length; ++i) {
    var obj = {};
    for(key in arr[i]) {
        if (arr[i].hasOwnProperty(key)) {
            obj[arr[i][key]] = key;
        }
    }
    newArr.push(obj);
}
var arr=[{“First Name”:“fname”,“Last Name”:“lname”},
{“根本原因”:“根本原因”},
{“公司名称”:“公司”}
];            
var newArr=[];
对于(变量i=0;i
您可以使用
Object.keys
获取对象中的键数组。这可用于访问对象中的每个值

例如:

var newArray = myArray.map(function(obj){
  var keys = Object.keys(obj);
  var newObj = {};

  keys.forEach(function(key){
      var newKey = obj[key];
      newObj[newKey] = key;
  });

  return newObj;
});

可以使用
Object.keys
获取对象中的键数组。这可用于访问对象中的每个值

例如:

var newArray = myArray.map(function(obj){
  var keys = Object.keys(obj);
  var newObj = {};

  keys.forEach(function(key){
      var newKey = obj[key];
      newObj[newKey] = key;
  });

  return newObj;
});

您也可以使用一些库来完成此操作,例如下划线有一个反转函数。

您也可以使用一些库来完成此操作,例如下划线有一个反转函数。

此代码不创建新实例,它只是反转同一对象中的键:

var hash={'key1':'val1','key2':'val2'};
log('before',hash)
for(散列中的var键){
哈希[哈希[键]]=键;
删除散列[键];
}

console.log('after',hash)
此代码不创建新实例,它只是反转同一对象中的键:

var hash={'key1':'val1','key2':'val2'};
log('before',hash)
for(散列中的var键){
哈希[哈希[键]]=键;
删除散列[键];
}

log('after',hash)
您可以这样做

var arr1=[{“First Name”:“fname”,“Last Name”:“lname”},
{“根本原因”:“根本原因”},
{“公司名称”:“公司”}
]
var arr2=[];

对于(var i=0;i你可以这样做

var arr1=[{“First Name”:“fname”,“Last Name”:“lname”},
{“根本原因”:“根本原因”},
{“公司名称”:“公司”}
]
var arr2=[];

对于(var i=0;i,只需迭代所有对象数组,并将对象值交换为对象键:

var a=[{“名字”:“fname”,“姓氏”:“lname”},{“根本原因”:“Root”},{“公司名称”:“company”}];
a、 forEach(函数(o){
for(变量输入o){
o[o[键]]=键;
删除o[键];
}
});

console.log(a);
只需迭代所有对象数组,并将对象值交换为对象键:

var a=[{“名字”:“fname”,“姓氏”:“lname”},{“根本原因”:“Root”},{“公司名称”:“company”}];
a、 forEach(函数(o){
for(变量输入o){
o[o[键]]=键;
删除o[键];
}
});
console.log(a);
这应该有帮助-可能重复的应该有帮助-可能重复的