[英]how to destruct a key pair object
我正在嘗試使用一對[key, value]
來破壞map object,例如:
var v = { foo: 'bar'};
function f({key, value}) {
console.log('key is ' + key);
console.log('value is ' + value);
}
f(v);
這個例子應該打印:
key is foo
value is bar
但它實際上正在打印:
key is undefined
value is undefined
我怎樣才能做到這一點? 注意:鍵名可以不同。
不確定是否可以在參數內部直接銷毀鍵/值。
但是您可以在函數內部完成此操作。
例如。
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);
不確定這不是您要查找的內容,但是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);
您可以使用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' });
這也應適用於具有多個屬性的對象。
var object = { foo: 'bar', food: 'pizza'}; function f(object) { // get an array of all keys let keys = Object.keys(object); // iteratate over this array keys.forEach(key => { // output the current key and associated value let property = object[key]; console.log('key is ' + key); console.log('value is ' + property); }); } f(object);
var v = { foo: 'bar'}; function f(obj) { var pair = Object.entries(obj)[0]; console.log('key is ' + pair[0]); console.log('value is ' + pair[1]); } f(v);
let foo = {foo: 'bar'}
let [key, value] = Object.entries(foo).flat();
console.log(key);
console.log(value);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.