новое свойство массива, не добавляемое к объекту javascript

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть существующий пустой массив parentChildQuestions=[] . Я хотел бы добавить к нему, чтобы построить следующую структуру:

 [
    {
        "id": "001",
        "childQuestions": [
            "002",
            "003"
        ]
    }
]
  

У меня есть следующая функция, но childQuestions свойство, похоже, не добавляется. В моем журнале это вообще не отображается.

 function addToDependentQuestions (thisQuestion) {
    if (parentChildQuestions.length===0) {
        var thisParent = parentChildQuestions.push({"id":thisQuestion.Parent_Question__c});
        thisParent.childQuestions=[thisQuestion.Id];

        console.log(thisParent.childQuestions);
    }
    else {
        var foundParentQuestion = $.grep(parentChildQuestions, function(e) { 
            return parentChildQuestions.Id == thisQuestion.Id;
        });
        foundParentQuestion.childQuestions.push(thisQuestion.Id);
    }

    console.log('parentChildQuestions'   JSON.stringify(parentChildQuestions));
}
  

Ответ №1:

 var thisParent = parentChildQuestions.push({"id":thisQuestion.Parent_Question__c});
  

‘array.push’ не возвращает вновь добавленный элемент. Оно возвращает новую длину массива.

http://www.w3schools.com/jsref/jsref_push.asp

Комментарии:

1. На самом деле в моем исходном коде было несколько ошибок, но именно эта вызвала описанную проблему