Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从对象获取键/值,执行函数并发送回_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 从对象获取键/值,执行函数并发送回

Javascript 从对象获取键/值,执行函数并发送回,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在从后端获取[{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: '

我正在从后端获取
[{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 }; });
它没有正确地映射它。
有什么想法吗?

您可以使用
.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
});
创建仅包含
时间
属性的数组的步骤

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

您可以使用一个数组,对其进行迭代,并将其他部分的数据用于新对象

var数据=[“德雷克”、“奥拉”、“d”],
hht=[21,34,56],
结果=data.map(函数(a,i){
返回{id:a,time:hht[i]};
});

控制台日志(结果)
您可以映射对象数组,并使用
对象返回不同的时间。分配

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)使用
for
循环尝试此操作

var res=[{
id:'测试',
时间:'1223'
}, {
id:'test2',
时间:'2323'
}, {
id:'test3',
时间:'2453'
}],
hht=[21,34,56];
对于(变量i=0;i控制台日志(res)
因此您希望基于另一个数组更新
时间
键。不,我正在基于我创建的函数更新
时间
键,我将获取值并执行函数,然后重新插入