JavaScript 创建对象数组
JavaScript make Object Array
我有一个 MySQL 查询,由 AngularJs Ajax 执行。
它returns数据由一个对象数组组成。使用 console.log() 它看起来像这样:
我从中获取数据的 table 如下所示:
id meaning_id word
1 1 a
2 1 b
3 2 c
4 2 d
5 2 e
6 3 f
所以如你所见,有些词与其他词具有相同的meaning_id,我想将这些词收集到一个对象中。
我想到了一个数组,在一个索引中包含所有具有相同meaning_id的单词。
例如 synonyms1 应该包含 words/objects a 和 b.
我试过这个:
$scope.prepareSynonymsArray = function()
{
for(var key in $scope.responseData)
{
var obj = $scope.responseData[key];
if(typeof $scope.synonyms[obj.meaning] == "undefined")
{
$scope.synonyms[obj.meaning] = obj;
}
else{
$scope.synonyms[obj.meaning].push(obj);
}
}
console.log($scope.synonyms);
}
但是推送功能好像有错误。
有没有更好的方法来实现这一目标?请给我一些建议。
亲切的问候,
Force0234
如果意图是 $scope.synonyms[obj.meaning]
应该是一个数组(假设您稍后尝试将 .push
个元素添加到它上面),那么在 undefined
的情况下您必须将它设置为[ obj ]
,不仅仅是obj
:
if (typeof $scope.synonyms[obj.meaning] == "undefined") {
$scope.synonyms[obj.meaning] = [ obj ]; // initial array with one element
} else {
$scope.synonyms[obj.meaning].push(obj); // additional elements
}
我有一个 MySQL 查询,由 AngularJs Ajax 执行。
它returns数据由一个对象数组组成。使用 console.log() 它看起来像这样:
我从中获取数据的 table 如下所示:
id meaning_id word
1 1 a
2 1 b
3 2 c
4 2 d
5 2 e
6 3 f
所以如你所见,有些词与其他词具有相同的meaning_id,我想将这些词收集到一个对象中。
我想到了一个数组,在一个索引中包含所有具有相同meaning_id的单词。 例如 synonyms1 应该包含 words/objects a 和 b.
我试过这个:
$scope.prepareSynonymsArray = function()
{
for(var key in $scope.responseData)
{
var obj = $scope.responseData[key];
if(typeof $scope.synonyms[obj.meaning] == "undefined")
{
$scope.synonyms[obj.meaning] = obj;
}
else{
$scope.synonyms[obj.meaning].push(obj);
}
}
console.log($scope.synonyms);
}
但是推送功能好像有错误。 有没有更好的方法来实现这一目标?请给我一些建议。
亲切的问候, Force0234
如果意图是 $scope.synonyms[obj.meaning]
应该是一个数组(假设您稍后尝试将 .push
个元素添加到它上面),那么在 undefined
的情况下您必须将它设置为[ obj ]
,不仅仅是obj
:
if (typeof $scope.synonyms[obj.meaning] == "undefined") {
$scope.synonyms[obj.meaning] = [ obj ]; // initial array with one element
} else {
$scope.synonyms[obj.meaning].push(obj); // additional elements
}