javascript - 使用来自多个数组的键转换一个对象以进行排序,现在希望它们返回为数组,因为它们是排序的
问题描述
var values =selectValues;
var names = selectNames;
var priorities = prioritizedHours;
var prefers = preferHrsArray;
var years = workedYearsArray;
var items = values.map((value, index) => {
return {
value: value,
name: names[index],
priority: priorities[index],
prefer: prefers[index],
year: years[index]
}
});
var arrayObject = JSON.stringify(items);
Logger.log('Object array: '+arrayObject);
在上面的程序中,我从名称、优先级等数组中创建了一个对象。在我对它们进行排序后,结果对象如下:
[
{"value":1,"name":"Fiona","prefer":30,"year":6},
{"value":1,"name":"Martin","prefer":40,"year":7},
{"value":2,"name":"Adam","prefer":0,"year":20},
{"value":2,"name":"Steve","prefer":100,"year":5}
]
现在排序完成后,我希望数组恢复到对象中的状态。我正在尝试获取如下数组:
value = [1,1,2,2],
name = ['Fiona', 'Martin','Adam', 'Steve'],
prefer = [30,40,0,100],
year = [6,7,20,5]
谢谢你帮助我。
解决方案
对于这种情况,您可以使用 forEach
const array = [
{"value":1,"name":"Fiona","prefer":30,"year":6},
{"value":1,"name":"Martin","prefer":40,"year":7},
{"value":2,"name":"Adam","prefer":0,"year":20},
{"value":2,"name":"Steve","prefer":100,"year":5}
]
const values = []
const names = []
const prefers = []
const years = []
array.forEach(rec => {
values.push(rec.value),
names.push(rec.name),
prefers.push(rec.prefer),
years.push(rec.year)
})
console.log(values)
console.log(names)
console.log(prefers)
console.log(years)
推荐阅读
- laravel - 如何与许多用户一起托管 Angular 前端和 Laravel 后端信使机器人
- rust - 有没有办法让一个特征为它扩展的另一个特征中的关联类型指定自己?
- apache - 带有 Docker 的 Apache Web 服务器和微服务
- c - 无法取消映射共享内存
- solr - Solr SnowballPorterFilterFactory 和葡萄牙语StemFilterFactory 之间的区别
- php - 引用不为空的自引用表
- excel - 如何避免组合框列表中的最后一个空字段
- metadata - 开源中有哪些可用的数据目录选项
- python - 在 Anaconda python 中使用带有 maxtasksperchild 参数的池时,为什么 imap_unordered 的输出比输入长?
- reactjs - Gatsby,浏览器中无法访问的环境变量