在 javascript 中交换对象的键值

Swapping key value of Object in javascript

本文关键字:键值 对象 交换 javascript      更新时间:2023-09-26

我正在尝试交换对象的键和值。我已经在js小提琴上编写了代码,请检查链接

没有输出我正在使用以下编写代码到 html

 document.getElementById("demo").innerHTML = out;

有人可以告诉我我哪里犯了错误吗?

你有几个错误。我已经像这样修复了你的小提琴:

var out='';
var car = {type:"Fiat", model:500, color:"white"};
// BUG #2 -- argument should be obj here not car as you use obj as variable inside
var invert = function (obj) {
  var new_obj = {};
  for (var prop in obj) {
    if(obj.hasOwnProperty(prop)) {
        var value = obj[prop];
      new_obj[value] = prop;
    }
  }
  // BUG #3 need to return the new_obj  
  return new_obj;
};

// BUG #1 -- need to pass car to invert() here! 
for (var value in invert(car)) {
  out += value + ' ';
}
document.getElementById("demo").innerHTML = out;

JSFiddle: http://jsfiddle.net/o1dcaw8j/2/

最短的两个解决方案香草 JavaScript

const objData = {
  type:"Fiat",
  model:500,
  color:"white"
}
// For
let swapObj = {}
for ( let ep in objData){
  swapObj.[objData[ep]] = ep;
}
console.log( swapObj );

// .reduce
const swapObj2 = Object.keys( objData ).reduce(function(obj, key) {
  obj[ objData[key] ] = key;
  return obj;
}, {});
console.log( swapObj2 );