从数组中提取属性
问题描述:
我有这个函数需要一个包含搜索对象数组的json
参数。从数组中提取属性
function receiveSearch(search, json) {
return {
type: RECEIVE_SCHOOL_SEARCH,
items: json.packages,
receivedAt: Date.now(),
search: Object.assign({}, search, { next: json.next, start: search.next }),
};
}
我json
财产的样子:
>0:Object
>1:Object
>2:Object
>3:Object
...{ more }
我想从JSON即name
和suburb
返回search
对象的两个属性。我该怎么做呢?我宁愿使用像lodash/ramda /下划线整齐的东西,但普通的js很好。
而且每个对象都包含以下属性:
id:"10360"
centreId:776
name:"ABBOTSFORD"
suburb:"TARNEIT"
答
使用的JavaScript可能使其中只包含必需的属性的新对象,并返回到您问题的最简单的解决方案。
只是假设您的JSON是这样的:
var x = {search:{id:"10360",centreId:776,name:"ABBOTSFORD",suburb:"TARNEIT"},otherProp:val}
为了得到所需的性能,可以使其他功能与所需的字段返回对象:
function ReturnRequiredPropertyObject(anyObj)
{
var newObj = {};
newObj.search = {};
newObj.search.name = anyObj.search.name;
newObj.search.suburb = anyObj.search.suburb;
return newObj;
}
你可以把上面的代码在循环中,如果您正在获取搜索对象的数组。
为了使上面的代码一般,我们可以做到以下几点:
function ReturnRequiredPropertyObject(anyObj,requiredPropertyArray)
{
var newObj = {};
for(var counter = 0;counter<requiredPropertyArray.length;counter++)
{
newObj[requiredPropertyArray[counter]] = anyObj[requiredPropertyArray[counter]];
}
return newObj;
}
希望这会有所帮助。
你试过了什么? – nicovank