JavaScript/Angular:如何从同一对象的数组初始化属性?

JavaScript/Angular:如何从同一对象的数组初始化属性?,javascript,angularjs,Javascript,Angularjs,这是我想在一个有角度的工厂里做的: app.factory('dataService', function () { return { data: ['5', '10', '20', '50', '100', '200'], selectedData: data[0], }, }, ) 基本上,我想将selectedData初始化为预定义数据数组的一项。此代码返回未定义的数据。如果使用此.data[0],则会出现错误:无法读取未定

这是我想在一个有角度的工厂里做的:

app.factory('dataService', function () {
    return {
        data: ['5', '10', '20', '50', '100', '200'],
        selectedData: data[0],
        },
    },
)

基本上,我想将selectedData初始化为预定义数据数组的一项。此代码返回未定义的数据。如果使用此.data[0],则会出现错误:
无法读取未定义的
的属性“0”。那么,如何在此处引用数据?

尝试在本地存储对象,然后设置值,最后返回:

app.factory('dataService', function () {
    var obj = { data: ['5', '10', '20', '50', '100', '200'] };
    obj.selectedData = obj.data[0];
    return obj;
    }
)
定义对象时不能引用数据。

不是这样的

如果你真的确定你想要一个有最终值的对象,那么Troles Larsen的答案就是正确的选择。然而,在许多应用程序中,拥有可以随时为您获取更新数据的对象是明智的。在不知道你的应用程序的情况下很难显示和说出,但这样做看起来像这样

app.factory('dataService', function () {
    var result = {
        data: ['5', '10', '20', '50', '100', '200'],
        getSelectedData: function (index) {
            return this.data[index];
        }
    }

    return result;
})

然后在其他任何地方,您都可以访问您想要的内容,这在数据数组可能不稳定的情况下尤其有用。

这实际上不会返回他想要的对象(我假设),而只返回“5”。他想要集合和当前选择的值。事实上,我本想展示如何使用对象来获取值。但这是最糟糕的方式。编辑以正确解释我的预期消息。