繁体   English   中英

添加到节点中的数组/对象

[英]Add to array/object in Node

我试图添加到节点中的对象:

exports.getAthleteData = function(accessToken, athleteId) {
    var athleteData = {};
    strava.athlete.get({'access_token': accessToken},function(err, payload) {
        athleteData.push({
            athleteName: payload.firstname + ' ' + payload.lastname,
            profile: payload.profile,
            profileMedium: payload.profile_medium,
            isPremium: payload.premium,
            sex: payload.sex
        });
    });
    return athleteData;
}

当调用该函数时,我收到一个错误TypeError: athleteData.push is not a function

如果我删除.push并执行以下操作,则返回的只是{}

athleteData = {
                athleteName: payload.firstname + ' ' + payload.lastname,
                profile: payload.profile,
...

可以肯定的是,我将payload转储到了控制台中,它给了我所期望的JSON对象。

我当然缺少一些非常简单的东西。 这是我对Node / Express的首次尝试,我很享受,但是经过多年依赖jQuery之后,我需要改进JavaScript。

push是Array方法。 如果要使athleteData者数据成为数组,请更改其声明: var athleteData = [];

可以使用方括号语法向对象动态添加新键,但是您需要提供键的名称。 例如:

var obj = {};
var funkyKey = '1234'
obj['name'] = 'Bob';
obj['age'] = 23;
obj[funkyKey] = 'test';
console.dir(obj); // { name: 'Bob', age: 23, 1234: 'test }

是的,这类似于使用点语法: obj.name = 'Bob' ,但是使您可以更好地控制新键的名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM