我有这个函数,它接受一个包含搜索对象数组的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返回search
对象的两个属性,即name
和suburb
。我该怎么做呢?我更喜欢使用像lodash / ramda / underscore那样整洁的东西,但普通的js很好。
每个对象都包含以下属性:
id:"10360"
centreId:776
name:"ABBOTSFORD"
suburb:"TARNEIT"
答案 0 :(得分:0)
答案 1 :(得分:0)
使用 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;
}
希望这会有所帮助。