我从后端获得[{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 :(得分:2)
您可以使用.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 :(得分: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);

答案 2 :(得分: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);
答案 3 :(得分: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);
&#13;