鍍金池/ 問答/Linux  HTML/ js 循環(huán)取出對象的屬性

js 循環(huán)取出對象的屬性

一個對象

state={
    new1:1,
    new2:2,
    new3:3,
    old1:1,
    old2:2
}

我如果想循環(huán)取出 state.new1 state.new2state.new3的值應(yīng)該怎么取
不取出old1 old2

例如第一次循環(huán)得到 state.new1 第二次得到 state.new2

for(var i=0;i<3;i++){
    第一次循環(huán)得到 state.new1 
    第二次得到 state.new2
}
回答
編輯回答
舊螢火

代碼

for(var key in state){
   if(key.substr(0,3)==='new'){
        console.info(state[key])
   }
}

效果圖:
clipboard.png

2018年7月24日 07:50
編輯回答
尐潴豬

可以把不想枚舉的屬性的enumerable設(shè)置為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設(shè)置為不可枚舉屬性
for (let i in state) {
  console.log(i)
}
2017年4月25日 05:08
編輯回答
愛礙唉

對象用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)
2018年7月4日 00:45
編輯回答
祉小皓
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])
}
2018年5月1日 13:14
編輯回答
念初
for(var value in state){
    console.log(state[value])
}
2017年7月27日 15:39