实现一个方法,动态过滤出对象arr中指定键的值,并返回一个新的对象;
//原始数据
let arr= {
a:"文本一",
b:"文本二",
c:"文本三",
}
//执行方法 fun(["a","b"]) 得到过滤后的对象
let arr= {
a:"文本一",
b:"文本二"
}
实现一个方法,动态过滤出对象arr中指定键的值,并返回一个新的对象;
//原始数据
let arr= {
a:"文本一",
b:"文本二",
c:"文本三",
}
//执行方法 fun(["a","b"]) 得到过滤后的对象
let arr= {
a:"文本一",
b:"文本二"
}
不考虑继承属性的方式
const result = [];
for (let key in arr) {
if (['a', 'b'].includes(key)) {
result.push(arr[key]);
}
}
includes
: https://developer.mozilla.org...
hasOwnProperty
: https://developer.mozilla.org...
刚好从项目工具类里看到一个。。顺手给你
function getTargetObject(targetObject, propsArray) {
if (typeof (targetObject) !== "object" || !Array.isArray(propsArray)) {
throw new Error("参数格式不正确");
}
const result = {};
Object.keys(targetObject).filter(key => propsArray.includes(key)).forEach(key => {
result[key] = targetObject[key];
})
return result;
}
以下是使用效果。。
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)
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读