我在谷歌搜索过这个问题,但没有找到合适的解决方案。
假设我有一个对象数组,如下所示 -
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.raswap.octomatic.E_shop">
<ListView
android:id="@+id/e_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
现在从上面的数组我想提取一个特定对的关键值,以便我的结果如下所示 -
"points":[{"pt":"Point-1","value":"Java, j2ee developer"},{"pt":"Point-2","value":"Experienced in Core Java, Spring, Hibernate, JPA, Big Data, SOA, BPEL"}]
我知道这可以使用手动循环来完成。但我不想循环。是否有可能使用lodash或其他api获得结果?
答案 0 :(得分:2)
你可以map你的阵列:
var points = [
{ 'pt': 'Point-1', 'value': 'Java, j2ee developer' },
{ 'pt': 'Point-2', 'value': 'Experienced in ...' }
];
var result = points.map(function(p) {
return { value: p.value };
});
答案 1 :(得分:1)
如果你使用的是最新版本的Javascript,你也可以在你的地图调用中使用解构,让你以优雅的方式提取你关心的属性。
points.map(({ value }) => ({ value }));
arrow函数将point
个对象作为参数,并使用{ value }
将point.value
属性解构为名为value
的变量。
然后它返回一个速记对象文字,它使用value
作为键和值。
使用Babel编译时,我们得到:
points.map(function (_ref) {
var value = _ref.value;
return { value: value };
});