5 回答

TA貢獻1810條經驗 獲得超5個贊
let state={
new1:1,
new2:2,
new3:3,
old1:1,
old2:2
};
const BLACK_LIST = ["old1", "old2"];
for(let p in state) {
if(BLACK_LIST.indexOf(p) == -1)
console.log(p, state[p])
}

TA貢獻1818條經驗 獲得超3個贊
對象用for in循環(huán)
const state = {
news1: 1,
news2: 2,
news3: 3,
old: 1,
old2: 2
}
var arr = []
for (let o in state) {
if (o.indexOf('news') > -1) {
arr.push({[o]: state[o]})
}
}
console.log(arr)

TA貢獻1812條經驗 獲得超5個贊
可以把不想枚舉的屬性的enumerable設置為false,這樣for in的話就不會循環(huán)出來了:
function notEnum (obj, keys) {
keys.forEach(key => {
let def = Object.getOwnPropertyDescriptor(obj, key)
def.enumerable = false
Object.defineProperty(obj, key, def)
})
}
var state = {
new1:1,
new2:2,
new3:3,
old1:1,
old2:2
}
notEnum(state, ['old1', 'old2']) // 把old1和old2設置為不可枚舉屬性
for (let i in state) {
console.log(i)
}
添加回答
舉報