我有以下腳本檢查我的物件是否具有以addr. 如何從物件中洗掉這些屬性?以及創建一個僅包含已洗掉屬性的新物件。
const dataObj = {
firstName: "David Dynamic",
id: "13249906",
lastName: "Garcia",
address1: "Test Address1",
address2: "Test Address2"
}
if (Object.keys(dataObj).some(function(k) {
return ~k.indexOf("addr")
})) {
console.log('Has address fields');
} else {
console.log('Does not have address fields');
}
uj5u.com熱心網友回復:
首先創建新物件,然后復制物件屬性,然后使用delete關鍵字。
const dataObj = {
firstName: "David Dynamic",
id: "13249906",
lastName: "Garcia",
address1: "Test Address1",
address2: "Test Address2"
}
const newObj = {}
for (const key in dataObj) {
if (key.indexOf("addr") != -1) {
newObj[key] = dataObj[key]
delete dataObj[key]
}
}
console.log(dataObj)
console.log(newObj)
uj5u.com熱心網友回復:
遍歷物件條目,洗掉以'addr'開頭的條目并將它們添加到reduce函式中的累積物件:
const dataObj = {
firstName: "David Dynamic",
id: "13249906",
lastName: "Garcia",
address1: "Test Address1",
address2: "Test Address2"
}
function extractAddrProperties(obj) {
return Object.entries(obj).reduce((result, [key, value]) => {
if (key.startsWith('addr')) {
delete obj[key]
result[key] = value
}
return result
}, {})
}
console.log(extractAddrProperties(dataObj))
console.log(dataObj)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/504521.html
標籤:javascript 目的
上一篇:如何通過匹配TypeScript中的鍵值相似度來將物件分組?
下一篇:js在陣列中添加一個新元素
