相关疑难解决方法(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 object = function(key,text)
{
    this.key = key;
    this.text = text;
}
Run Code Online (Sandbox Code Playgroud)

并创建这些对象的数组

var objArray = [];
objArray[0] = new object('key1','blank');
objArray[1] = new object('key2','exampletext');
objArray[2] = new object('key3','moretext');
Run Code Online (Sandbox Code Playgroud)

有没有办法我只能检索数组中所有对象的一个​​属性?例如:

var keyArray = objArray["key"]; 
Run Code Online (Sandbox Code Playgroud)

上面的例子没有将set keyArray返回给任何东西,但我希望它会被设置为这样的东西:

keyArray = [
    'key1',
    'key2',
    'key3']
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何在不迭代objArray并手动将每个键属性复制到键数组的情况下执行此操作?

javascript arrays javascript-objects

21
推荐指数
1
解决办法
3万
查看次数

打字稿从对象中选择ID

我是Typescript的新手.我想从observable中选择id

这是我的观察

let myObj = [{
  "id": 1,
  "text": "Mary"
}, {
  "id": 2,
  "text": "Nancy"
}, {
  "id": 3,
  "text": "Paul"
}, {
  "id": 4,
  "text": "Cheryl"
}, {
  "id": 5,
  "text": "Frances"
}]
Run Code Online (Sandbox Code Playgroud)

预期结果 :

let selectedIds = [1,2,3,4,5];
Run Code Online (Sandbox Code Playgroud)

我可以在不创建数组并在for循环中推送id的情况下执行此操作.

arrays rxjs typescript rxjs5 angular

8
推荐指数
1
解决办法
3万
查看次数