代码之家  ›  专栏  ›  技术社区  ›  Vincent Chua

在javascript中将数组合并为单个对象

  •  5
  • Vincent Chua  · 技术社区  · 6 年前

    目前我有3个阵列:

    var idArray = [13, 24, 35];    
    var dateArray = [20181920, 20181120, 20172505];
    var contentArray = ["content1", "content2", "content3"];
    

    我希望将所有数组合并为一个对象,并尝试使用for循环,但得到了一个错误:

    var finalObj = {};
    
    for (var y = 0; y < dateArray.length; y++) { 
        finalObj[y].id = idArray[y];
        finalObj[y].date =  dateArrayArrange[y];
        finalObj[y].content =  contentArray[y];
    
    }
    

    我想要达到的最终结果是:

    finalObj = [{id:13, date:20181920, content:"content1"},
              {id:24, date:20181120, content:"content2"},
              {id:35, date:20172505, content:"content3"}];
    
    9 回复  |  直到 6 年前
        1
  •  3
  •   Jayffe    6 年前

    finalObj

    var finalObj = [];
    var idArray = [13, 24, 35];
    var dateArray = [20181920, 20181120, 20172505];
    var contentArray = ["content1", "content2", "content3"];
    
    for (var y = 0; y < dateArray.length; y++) {
      finalObj.push(
        { id: idArray[y], date: dateArray[y], content : contentArray[y] }
      )
    }
    

    finalObj[y] = {}

    for (var y = 0; y < dateArray.length; y++) {
      finalObj[y] = {}  
      finalObj[y].id = idArray[y];
      finalObj[y].date = dateArray[y];
      finalObj[y].content = contentArray[y];
    }
    

      finalObj.push(
        { id: idArray[y], date: dateArray[y], content : contentArray[y] }
      )
    

        2
  •  7
  •   brk    6 年前

    finalObj map

    index

    var idArray = [13, 24, 35];
    var dateArray = [20181920, 20181120, 20172505];
    var contentArray = ["content1", "content2", "content3"];
    
    let m = idArray.map(function(item, index) {
      // here the map method will push the object to an 
      // array and will return that array
      return {
        id: item,
        date: dateArray[index],
        content: contentArray[index]
      }
    
    })
    console.log(m)
        3
  •  2
  •   VolArt    6 年前
    let newObjArray = idArray.map((value, index) => {
            return {
                id: value,
                date: dateArray[index],
                content:contentArray[index]
            }
    
        });
    console.log(newObjArray);
    
        4
  •  1
  •   Kino Bacaltos    6 年前

    var finalObjArray = [];
    
    for (var y = 0; y < dateArray.length; y++) { 
        finalObjArray.push({
                           id: idArray[y],
                           date: dateArrayArrange[y],
                           content: contentArray[y]
        });
    
    }
    

        5
  •  1
  •   Stephen.W    6 年前

    undefined

        6
  •  1
  •   Black    6 年前

        var idArray = [13, 24, 35];    
        var dateArray = [20181920, 20181120, 20172505];
        var contentArray = ["content1", "content2", "content3"];
        
        var final = [];
        
        for (let y = 0; y < idArray.length; y++) { 
        	let tmp = {};
            tmp.id = idArray[y];
            tmp.date =  dateArray[y];
            tmp.content =  contentArray[y];
            
            final.push(tmp);
        
        }
        
        console.log(final)

    dateArrayArrange dateArray

        7
  •  1
  •   Gaurav    6 年前

    var idArray = [13, 24, 35];    
    var dateArray = [20181920, 20181120, 20172505];
    var contentArray = ["content1", "content2", "content3"];
    var finalObj = [];
    
    for (var y = 0; y < dateArray.length; y++) { 
        object = {};
        object.id = idArray[y];
        object.date =  dateArray[y];
        object.content =  contentArray[y];
        finalObj[y] = object;
    }
    
        8
  •  1
  •   Nina Scholz    6 年前

    var id = [13, 24, 35],
        date = [20181920, 20181120, 20172505],
        content = ["content1", "content2", "content3"],
        result = Object
            .entries({ id, date, content })
            .reduce((r, [k, values]) => values.map((v, i) => ({ ...r[i], [k]: v })), []);
            
    console.log(result);
    .as-console-wrapper { max-height: 100% !important; top: 0; }
        9
  •  0
  •   narasimha sriharsha Kanduri    6 年前

    function joinArrays(id, date, content,...array){
        const Arr = [...array];
        const newArr = new Array(Arr.length)
        for(let i=0; i<newArr.length;i++){
            newArr[i] ={}
        }
        Arr.map((rowArr,index)=>{
            rowArr.map((i,k)=>
                {
                    key = arguments[index];
                    let obj = {};
                    obj[key] = i;
                    newArr[k]=Object.assign(newArr[k],obj)}
            )
        }
        )
        console.log(newArr);
        return newArr;
    
    }
    target = joinArrays('id', 'date', 'content',idArray,dateArray,contentArray);