鍍金池/ 問(wèn)答/HTML/ js中如何動(dòng)態(tài)的從對(duì)象中過(guò)濾出指定的值

js中如何動(dòng)態(tài)的從對(duì)象中過(guò)濾出指定的值

實(shí)現(xiàn)一個(gè)方法,動(dòng)態(tài)過(guò)濾出對(duì)象arr中指定鍵的值,并返回一個(gè)新的對(duì)象;

//原始數(shù)據(jù)

  let arr= {
        a:"文本一",
        b:"文本二",
        c:"文本三",
    }
   

//執(zhí)行方法 fun(["a","b"]) 得到過(guò)濾后的對(duì)象

  let arr= {
        a:"文本一",
        b:"文本二"
    }
回答
編輯回答
懶豬

解決


不考慮繼承屬性的方式
const result = [];
for (let key in arr) {
  if (['a', 'b'].includes(key)) {
    result.push(arr[key]);
  }
}

參考


2017年4月16日 17:04
編輯回答
荒城

var b = {

    a:"文本一",
    b:"文本二",
    c:"文本三",
}

function fun(arr,obj){
let o = {}
Object.keys(obj).forEach(item=>{
if(~arr.indexOf(item)){
o[item]=obj[item]
}
})
return o
}
var obj = fun(['a','b'],b)
console.log(obj)

2018年5月30日 17:47
編輯回答
好難瘦

剛好從項(xiàng)目工具類(lèi)里看到一個(gè)。。順手給你

function getTargetObject(targetObject, propsArray) {
    if (typeof (targetObject) !== "object" || !Array.isArray(propsArray)) {
        throw new Error("參數(shù)格式不正確");
    }
    const result = {};
    Object.keys(targetObject).filter(key => propsArray.includes(key)).forEach(key => {
        result[key] = targetObject[key];
    })
    return result;
}

以下是使用效果。。

clipboard.png

2017年6月6日 12:59
編輯回答
舊螢火

給個(gè)提示

獲取對(duì)象鍵名
Object.keys()

2017年11月24日 16:25
編輯回答
離夢(mèng)
let arr= {
        a:"文本一",
        b:"文本二",
        c:"文本三",
    }
var obj = {};

function fun(arg){
    for(var i in arr){
        for(var j = 0; j<arg.length;j++){
            if(i==arg[j]){
                obj[i] = arr[i]
            }
        }
    }

}

2018年1月5日 23:42