从数组中提取属性
Extracting properties from array
我有这个函数,它接受一个包含搜索对象数组的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"
对于使用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;
}
Ok resolved
回答是_.map(json,_.partialRight(_.pick,['name','suburb']));
相关文章:
- 如何提取“;href"最近列表项中的属性值
- 在不使用lodash-get的情况下从json中提取深层属性
- JavaScript无法提取引号css属性
- 从NodeList中提取属性值
- Javascript:如何通过Regexp从属性中提取字符串
- 创建新的javascript数组,从对象属性中提取数据
- 如何使用JQuery从文本区域内容中提取属性
- 如何使用正则表达式从javascript/jquery中的属性值中提取文本
- 提取并调用在元素的 onclick HTML 属性中定义的 JavaScript 函数(使用 jQuery attr/p
- 更改 TD 属性并保留从站点提取的数据中获取值
- 从对象中提取每个属性的 1
- 如何从 JavaScript 对象中提取 ID(或其他属性)
- 使用 lodash 按属性名称提取深度嵌套的子对象
- 主干提取集合生命周期,从响应设置属性
- 如何从一个选定元素中提取多个属性
- 根据终止属性提取子流
- 从属性选择器中提取值
- 提取具有最大属性值的数组元素
- Javascript,按属性提取和组织对象数组
- 用属性提取XML属性