从JavaScript中的键和字符串值获取objectId

时间:2018-07-09 05:41:49

标签: javascript arrays

我正在尝试获取要存储在数据库中的对象数组的对象ID。 有什么想法吗?

 //Input
  var data = [{
          id: 1,
          name: 'a'
      },
      {
          id: 2,
          name: 'b'
      }
  ];

这是我要获取其值的对象,现在我要实现的是来自要获取id值的名称。

预期产量

如果结果为'a',那么我应该得到值'1'

如果结果是'b',那么我应该得到值'2'

任何人都可以解决这个问题。请帮助我

3 个答案:

答案 0 :(得分:3)

我会将数组变成一个对象,以便您可以访问obj[name]来获取id

var data = [
  {id: 1, name: 'a'},
  {id: 2, name: 'b'},
  {id: 3, name: 'ccc'}
];
const obj = data.reduce((a, { id, name }) => {
  a[name] = id;
  return a;
}, {});
console.log(obj.a);
console.log(obj.b);

// if the name is in a variable:

const name = 'ccc';
console.log(obj[name]);

答案 1 :(得分:1)

您可以使用.find()

var arr = [{
    id: 1,
    name: 'a'
  },
  {
    id: 2,
    name: 'b'
  }
];

function getId(data, name) {
  return typeof name === 'string' ?
    data.find(e => name === e.name).id :
    data.filter(e => name.includes(e.name)).map(e => e.id)
}

var result1 = getId(arr, ['a', 'b']);
var result2 = getId(arr, 'a');

console.log(result1)
console.log(result2)

答案 2 :(得分:0)

尝试一下

var data = [{
          id: 1,
          name: 'a'
      },
      {
          id: 2,
          name: 'b'
      }
  ];

var valuse = data.find(function (el) {
  return el.name == 'b' ;
});


console.log(valuse.id);