JavaScript - 无法正确访问对象中的属性

时间:2017-07-17 19:03:24

标签: javascript arrays node.js

我有以下代码:

function getObjects(name, data) {
    return data.filter(function(d) {
        return name.title == d.title;
    }).map(function(d) {
        return {
            "title": d.title,
            "sort": d.sort[0],
            "direction": d.sort[1],
            "columns": d.columns
        }
    });
};
var objectMatch = getObjects(searchName, searchObjects);
console.log("------match------");
console.log(objectMatch);

当我将objectMatch打印到控制台时,我得到以下输出:

[ { title: 'Convene LinkedIn Import - True',
sort: '_type',
direction: 'asc',
columns: [ 'm-Form Factor_s', '_type', 'm-Identity_s' ] } ]

我正在尝试访问此对象中的属性,但在尝试引用它们时,我一直未定义:

var title = objectMatch.title;

引用objectMatch变量内部属性的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

map()会返回一个数组,因此您必须执行以下操作:

var title = objectMatch[0].title;

如果您的getObjects函数将/应该永远不会返回多个项目,我会改为将您的函数更改为:

function getObjects(name, data) {
    return data.filter(function(d) {
        return name.title == d.title;
    }).map(function(d) {
        return {
            "title": d.title,
            "sort": d.sort[0],
            "direction": d.sort[1],
            "columns": d.columns
        }
    })[0];
};

然后您可以像以前一样访问标题。