簡體   English   中英

對象刪除和返回屬性

[英]Object delete and return property

JS中有什么快速方法可以刪除並返回對象屬性?

const objectA = { a: 1, b: 2 };
const b = object.doSomething("b");
const objectB = { b };

objectA is now { a: 1 }
objectB is { b: 2 }

我知道我可以分配該屬性然后將其刪除,但是我想知道JS中是否有任何方法可以在一個函數中執行此操作。

此操作沒有捷徑。 您需要手動執行; 這是一種方法:

 function doSomething(source, ...keys) { var result = keys.reduce((r, k) => { r[k] = source[k]; delete source[k]; return r; }, {}); return result; } var obj1 = { a: 1, b: 2 }; var obj2 = doSomething(obj1, 'b'); console.log(obj1, obj2); 

要回答您的問題:不,沒有單個函數可以完成所有這些工作。

但是您可以執行以下操作:

const objectB = {};
const k = 'b'; 

let t;

objectB[k] = t = objectA[k] && delete objectA[k] && t;

您可以將其包裝成這樣的函數:

function deleteReturn(object, key) {
    let temp;

    return (temp = object[key]) && delete object[key] && temp;
}

const b = deleteReturn(objectA, 'b');

const objectB = { b };

如果要使其更具可維護性,則應將單行代碼分成多個語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM