如何销毁密钥对对象

gui*_*job 4 javascript

我正在尝试用一对破坏地图对象[key, value],例如:

var v = { foo: 'bar'};

function f({key, value}) {
   console.log('key is ' + key);
   console.log('value is ' + value);
}

f(v); 
Run Code Online (Sandbox Code Playgroud)

这个例子应该打印:

key is foo
value is bar
Run Code Online (Sandbox Code Playgroud)

但它实际上是在打印:

key is undefined
value is undefined
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?注意:键名可能会有所不同。

Nin*_*olz 6

您可以用于Object.entries获取对象的条目,它为每个条目返回一个键值数组。

function f(object) {
    for (var [key, value] of Object.entries(object)) {
        console.log('key is ' + key);
        console.log('value is ' + value);
    }
}

f({ foo: 'bar' });
Run Code Online (Sandbox Code Playgroud)


Kei*_*ith 5

不确定您可以直接在参数内部析构键/值。

但是你可以在函数里面做..

例如。

const v = { foo: 'bar'};

function f(o) {
   const [key, value] = Object.entries(o)[0];
   console.log('key is ' + key);
   console.log('value is ' + value);
}

f(v); 
Run Code Online (Sandbox Code Playgroud)


Sco*_*cus -1

不确定这是否是您要寻找的,但Object.keys()确实可以解决问题。

var v = { foo: 'bar'};

function f(o) {
   console.log('key is ' + Object.keys(o)[0]);
   console.log('value is ' + o[Object.keys(o)[0]]);
}

f(v);
Run Code Online (Sandbox Code Playgroud)