javascript - 从对象中获取键/值,执行功能并发回

标签 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 循环 插入数组,但是我的 for 循环 缺少一些东西

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});

关于javascript - 从对象中获取键/值,执行功能并发回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40351090/

相关文章:

javascript - 按名称获取嵌套键

arrays - 有条件地投影匹配数组项

javascript - 未定义 $parse 的 Angular Directive(指令)

javascript - HTML Select Text 上的 jQuery val() 优先于 Value

javascript - 为什么es6 Set原型(prototype)有values方法?

javascript - 页面加载时显示的隐藏表单

javascript - 将一个 div 插入另一个 div

jquery - 如何使用treeTable的显示功能?

javascript - js如何删除数组中具有共同值的对象?

javascript - 当我将值插入数组并尝试重新打印这些值时,我的页面崩溃