2016-10-31 88 views
3

我從後端獲得[{id:'test', time: '1223'}, {id: 'test2', time: '2323'}]送回來,我需要檢索所有的時間值,執行功能,併發送回對象爲[{id:'test', time: 'new value for test'}, {id: 'test2', time: 'new value for test2'}]獲取鍵/值,執行功能和

所以我決定,我會嘗試和提取的時間值,並使用for loop但我for loop推入陣中缺少的東西

var objext = [{id:'test', time: 'blah'}, {id: 'test2', time: 'blah'}]; 
    var dataArray = new Array; 
    for (var id in objext) { 
    dataArray.push(objext[id]); 
    }; 

它返回顯然是一樣的,我不知道如何選擇time關鍵。

然後我會跑我的每一個這樣的功能,其工作良好:

var time = [23,34,56]; 
    var map = time.map(function(num) { 
    if (num === 23) { 
     return num +2; 
    } else { 
     return num; 
    }; 
    }); 

然後是最後一部分,是把回來,我想我能得到的id數組和的time之一,然後時隙回在一起,但我到目前爲止的代碼只能在一個時間映射一個陣列:

var data = ["Drake","Ola","d"], 
    result = data.map(function (a) { return { id: a }; }); 

我已經使用數組作爲這樣的嘗試:

var data = ["Drake","Ola","d"]; 
var hht = [21,34,56]; 
result = [data,hht].map(function (a,b) { return { id: a, time:b }; }); 

它沒有正確映射它。 任何想法?

+0

所以要更新'基於另一個陣列time'鍵。 –

+0

不,我正在更新基於我創建的函數的'時間'鍵,我將獲得該值並執行一個函數並返回 – Olli

回答

2

您可以執行所有任務withing .map()回調

var objtext = [{id:'test', time: '1223'}, {id: 'test2', time: '2323'}]; 
objtext = objtext.map(function(obj) { 
    var time = obj.time; 
    // do stuff with `obj.time` 
    if (time == 1223) { 
    time += 2; 
    obj.time = time; 
    } 
    if (time == 2323) { 
    time -= 2; 
    obj.time = time; 
    } 
    return obj 
}); 

要創建一個僅包含time性質

數組
var times = objtext.map(function({time}) {return time}); 
1

你可以使用一個數組,迭代,並從其他地方使用以及一個新的對象。

var data = ["Drake", "Ola", "d"], 
 
    hht = [21, 34, 56], 
 
    result = data.map(function (a, i) { 
 
     return { id: a, time: hht[i] }; 
 
    }); 
 

 
console.log(result);

0

可以映射對象的數組,並返回不同的時間以Object.assign

var objs = [ 
 
    {id: 'Drake', time: 'blah'}, 
 
    {id: 'Ola', time: 'blah'}, 
 
    {id: 'd',  time: 'eh' }]; 
 
var hht = [21, 34, 56]; 
 

 
objs = objs.map((obj, i) => Object.assign({}, obj, { time: hht[i] })); 
 

 
console.log(objs);

0

試試這個使用for循環。

var res = [{ 
 
    id: 'test', 
 
    time: '1223' 
 
    }, { 
 
    id: 'test2', 
 
    time: '2323' 
 
    }, { 
 
    id: 'test3', 
 
    time: '2453' 
 
    }], 
 
    hht = [21, 34, 56]; 
 
for (var i = 0; i < res.length; i++) { 
 
    res[i]["time"] = +res[i]["time"] + hht[i]; 
 
    //or use if statements 
 
    //if(+res[i]["time"] === 23)res[i]["time"] = +res[i]["time"] + hht[i]; 
 
    
 
    //scenario will be 
 
//res[0]["time"] = 1223 + 21 
 
//res[1]["time"] = 2323 + 34 
 
//res[2]["time"] = 2453 + 56 
 
} 
 
console.log(res);