【问题标题】:Iteration over an array of objects迭代对象数组
【发布时间】:2021-06-22 05:20:57
【问题描述】:

我有一个对象数组,我打算在特定条件下将其中的一些字段复制到不同的对象值

fromPage: "home";

        sample = [
        {iD:100A,fName:"jack",age:28},
        {iD:200A,fName:"kate",age:29},
        {iD:300A,fName:"rose",age:30}
        ]```

  `    copyObj = [{id:string, name:string}]  `

预期结果:

          copyObj = [
             {id:100A,name:"jack"},
             {id:100B,name:"kate"}
                       ] 

我想将这些特定字段从示例中复制到我的 copyObj。我尝试了以下方式,但最终未定义。

            for(var i=0;i<=sample.length;i++){
            if(this.fromPage == "home")
            {
             this.copyObj[i].id = this.sample[i].iD;
             this.copyObj[i].name = this.sample[i].fName;
             }
         }

上面抛出错误,例如:无法读取未定义的属性“ID”

任何其他方式来实现这一点,请帮助。我也尝试使用 forEach 进行迭代,然后将值推送到新数组,但它不起作用。

【问题讨论】:

    标签: arrays for-loop object foreach iterator


    【解决方案1】:

    试试下面的代码,

    this.copyObj=[];
     for(var i=0;i<=this.sample.length-1;i++){
       if(this.fromPage === "home"){
          this.copyObj.push({'id':this.sample[i].iD,'name':this.sample[i].fName});
        }
     }
    

    【讨论】:

    • 我猜你在 for 循环中错过了 -1。 for(var i=0;i
    • fromPage: string = "home";样本 = [ {'iD':100,'fName':"jack1",'age':28}, {'iD':200,'fName':"jack2",'age':28}, {'iD ':300,'fName':"jack3",'age':28} ];公共格式(){ this.copyObj=[]; for(let i=0;i
    • 它就像一个魅力:-),感谢您的时间和贡献 Geethanjali R
    猜你喜欢
    • 1970-01-01
    • 2014-07-11
    • 2017-03-29
    • 2019-02-27
    • 2017-07-30
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多