一个对象
state={
new1:1,
new2:2,
new3:3,
old1:1,
old2:2
}
我如果想循环取出 state.new1 state.new2state.new3的值应该怎么取
不取出old1 old2
例如第一次循环得到 state.new1 第二次得到 state.new2
for(var i=0;i<3;i++){
第一次循环得到 state.new1
第二次得到 state.new2
}
一个对象
state={
new1:1,
new2:2,
new3:3,
old1:1,
old2:2
}
我如果想循环取出 state.new1 state.new2state.new3的值应该怎么取
不取出old1 old2
例如第一次循环得到 state.new1 第二次得到 state.new2
for(var i=0;i<3;i++){
第一次循环得到 state.new1
第二次得到 state.new2
}
对象用for in循环
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)
可以把不想枚举的属性的enumerable
设置为false
,这样for in
的话就不会循环出来了:
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)
}
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答921 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决