相关疑难解决方法(0)

从对象数组中,将属性的值提取为数组

我有JavaScript对象数组,具有以下结构:

objArray = [ { foo: 1, bar: 2}, { foo: 3, bar: 4}, { foo: 5, bar: 6} ];
Run Code Online (Sandbox Code Playgroud)

我想提取一个包含key值的数组foo,结果值为[ 1, 3, 5 ].

我用琐碎的方法完成了这个,如下:

function getFields(input, field) {
    var output = [];
    for (var i=0; i < input.length ; ++i)
        output.push(input[i][field]);
    return output;
}

var result = getFields(objArray, "foo"); // returns [ 1, 3, 5 ]
Run Code Online (Sandbox Code Playgroud)

有没有更优雅和高效的方法来实现?


关于建议重复的注意事项,该问题询问如何将对象转换数组,这个问题询问如何对象数组中提取单个属性.

javascript javascript-objects

851
推荐指数
19
解决办法
60万
查看次数

仅保留JavaScript对象中的某些属性

我有一个对象.我想通过删除除某些特定属性之外的所有属性来修改对象(而不是克隆它).例如,如果我开始使用此对象:

var myObj={
    p1:123,
    p2:321,
    p3:{p3_1:1231,p3_2:342},
    p4:'23423',
    //....
    p99:{p99_1:'sadf',p99_2:234},
    p100:3434
}
Run Code Online (Sandbox Code Playgroud)

并且只想要属性p1,p2和p100,我该如何获得这个对象:

var myObj={
    p1:123,
    p2:321,
    p100:3434
}
Run Code Online (Sandbox Code Playgroud)

我理解如何用蛮力做到这一点,但想要一个更优雅的解决方案.

javascript

16
推荐指数
6
解决办法
8575
查看次数

从现有阵列创建一个新阵列

我有一个像这样的现有数组

"activeSubject": [
        {
            "subject_id": "Class Teacher",
            "subject_name": "Class Teacher",
            "status": "2"
        },
        {
            "subject_id": "Academic Leader (Head)",
            "subject_name": "Academic Leader (Head)",
            "status": "2"
        },
        {
            "subject_id": "15",
            "subject_name": "Physics",
            "status": "2"
        }
    ]
Run Code Online (Sandbox Code Playgroud)

然后我想创建一个看起来像这样的新数组

"new_subjects": [
        {
            "value": "Class Teacher",
        },
        {
            "value": "Academic Leader (Head)",
        },
        {
            "value": "Physics",
        }
    ]
Run Code Online (Sandbox Code Playgroud)

我已经通过map()方法尝试了这个

var objA = this.state.activeSubject.map(o => ({
          [o]: { value: o.subject_name}
        }))
Run Code Online (Sandbox Code Playgroud)

但它没有给出正确的数组,请帮我解决这个问题

javascript reactjs react-native

0
推荐指数
1
解决办法
59
查看次数

Javascript将多个对象值合并到数组中

我有一个看起来像这样的数组:

[ { Id:1, Name:'' }, { Id:2, Name:'' }, { Id:2, Name:'' } ]
Run Code Online (Sandbox Code Playgroud)

我想要一个看起来像这样的结果对象:

{ Id:[1, 2, 3] }
Run Code Online (Sandbox Code Playgroud)

我如何在Javascript中实现这一目标?

javascript arrays

-4
推荐指数
2
解决办法
245
查看次数