获取对象属性值

时间:2016-09-19 08:49:22

标签: javascript

我的数组如下:

let arr = [
    {type: "Benzine", active: false},
    {type: "Diesel", active: false},
    {type: "Electricity", active: false}
]

我有一个函数,我想获得该数组的属性active的值:

function isChecked(filterName) {
    return arr.filter(f => f.type === filterName).map(c => c.active)[0];
}

效果很好,最后有[0]。有没有办法在最后没有[0]的情况下显示活动属性值?

2 个答案:

答案 0 :(得分:3)

不,只要你使用filter,就没有了。
[0]用于从该过滤器获取第一个结果。

由于您只是返回active的值,您可以使用Array.prototype.some,而不是:



let arr = [
  {type: "Benzine", active: false},
  {type: "Diesel", active: false},
  {type: "Electricity", active: true}
];

function isChecked(filterName){
  // Is there an element in the array that matches the filter AND is active?
  return arr.some(f => f.type === filterName && f.active);
}

console.log("Diesel:", isChecked("Diesel"));
console.log("Electricity:", isChecked("Electricity"));




答案 1 :(得分:1)

您可以使用find来获取数组的第一个匹配元素,而不是使用filter

function isChecked(filterName) {
    var elem = arr.find(f => f.type === filterName);
    return elem ? elem.active : false;
}