【问题标题】:How to store list objects into array using angularjs or javascript?如何使用 angularjs 或 javascript 将列表对象存储到数组中?
【发布时间】:2018-04-19 07:28:15
【问题描述】:

我尝试使用解析来自服务器的数据,我得到了结果,但我的问题是我希望他们将它们存储到一个数组中,我使用了 .push 函数,但它只返回一些项目而不是来自对象列表。

我用过这个:

var results = [];

return results.push(listOfObject);

来自:

angular.forEach(data.Value, function(items) { 
  console.log(items);
  return items; 

  return true;
}); 

结果:

{Id: null, Name: "Innova"}
{Id: null, Name: "Ferrari"}
{Id: null, Name: "BMW"}
{Id: null, Name: "Toyota"}
{Id: null, Name: "Honda"}
{Id: null, Name: "Hyuindai"}
{Id: null, Name: "Kia"}
{Id: null, Name: "Suzuki"}

我想这样实现:

Results: [
   0:{Id: null, Name: "Innova"}
   1:{Id: null, Name: "Ferrari"}
   2:{Id: null, Name: "BMW"}
   3:{Id: null, Name: "Toyota"}
   4:{Id: null, Name: "Honda"}
   5:{Id: null, Name: "Hyuindai"}
   6:{Id: null, Name: "Kia"}
   7:{Id: null, Name: "Suzuki"}
]

【问题讨论】:

  • 请显示listOfObject的内容。你想要一个数组,但是数据当前是什么格式的?
  • {Id:null,名称:“Innova”} {Id:null,名称:“Ferrari”} {Id:null,名称:“BMW”} {Id:null,名称:“Toyota "} {Id: null, Name: "Honda"} {Id: null, Name: "Hyuindai"} {Id: null, Name: "Kia"} {Id: null, Name: "Suzuki"}
  • 请编辑问题。所以你是说你的数据是一个字符串?
  • 我不知道你到底想要什么。你说的只有几个项目是什么意思。它确实从对象列表中返回数据。

标签: javascript angularjs arrays javascript-objects


【解决方案1】:

您的成就违反了数组定义。 改为使用 Hash 对象(键值对),

我假设您的 data.Value 如下所示。

data.Value = [
                {Id: null, Name: "Innova"}
                {Id: null, Name: "Ferrari"}
                {Id: null, Name: "BMW"}
                {Id: null, Name: "Toyota"}
                {Id: null, Name: "Honda"}
                {Id: null, Name: "Hyuindai"}
                {Id: null, Name: "Kia"}
                {Id: null, Name: "Suzuki"}
             ];

那么解决办法就是

 var results = {};
 var counter = 0;
 angular.forEach(data.Value, function(eachItem) {
       results[counter] = eachItem;
       counter++;
 }); 

它会给你

 results = {
                0:{Id: null, Name: "Innova"},
                1:{Id: null, Name: "Ferrari"},
                2:{Id: null, Name: "BMW"},
                3:{Id: null, Name: "Toyota"},
                4:{Id: null, Name: "Honda"},
                5:{Id: null, Name: "Hyuindai"},
                6:{Id: null, Name: "Kia"},
                7:{Id: null, Name: "Suzuki"}
           }

如果您希望最终结果是一个数组,请将其推送到一个数组

var resultInArray = [];
resultInArray.push(results);

[
   {
                0:{Id: null, Name: "Innova"},
                1:{Id: null, Name: "Ferrari"},
                2:{Id: null, Name: "BMW"},
                3:{Id: null, Name: "Toyota"},
                4:{Id: null, Name: "Honda"},
                5:{Id: null, Name: "Hyuindai"},
                6:{Id: null, Name: "Kia"},
                7:{Id: null, Name: "Suzuki"}
  }
]

【讨论】:

    【解决方案2】:
    $scope.yearsExcuete = 0;
                 $scope.tempValStore = [];
                 for (var i = 0; i <= 10; i++) {
                   $scope.yearsExcuete = parseInt(2018) + parseInt(i);
                   $scope.tempValStore.push({year: $scope.yearsExcuete});  
               }  
    

    样本输出

    {
    0: {year: 2018}
    1: {year: 2019}
    2: {year: 2020}
    3: {year: 2021}
    4: {year: 2022}
    5: {year: 2023}
    6: {year: 2024}
    7: {year: 2025}
    8: {year: 2026}
    9: {year: 2027} 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-27
      • 2020-06-02
      • 2012-10-08
      • 2012-11-06
      • 2019-11-09
      • 1970-01-01
      • 2014-06-26
      • 2015-09-02
      相关资源
      最近更新 更多