【发布时间】:2020-05-27 15:51:07
【问题描述】:
我有一个对象数组。每个对象都有相同的属性。我尝试创建一个函数来返回一个数组数组,其中每个内部数组都应包含基于对象属性名称的值。
输入:
input: [
{
test1: '10',
test2: '15',
test3: '14',
test4: '22'
},
{
test1: '4',
test2: '1',
test3: '45',
test4: '2'
},
{
test1: '5',
test2: '16',
test3: '7',
test4: '0'
}
]
预期输出 - 数组内部仅包含键相同的元素。
例如test1数组中的值:[10, 4, 5]:
output: [[10, 4, 5], [15, 1, 16], [14, 45, 7], [22, 2, 0]]
我的方法是使用 array.entries() 和迭代器。结果是错误的 - 值的存储顺序错误。
let output = [];
sort(input) {
const results = [[], [], [], []];
if (input.length > 0) {
const iterator = input.entries();
let item = iterator.next();
while (!item.done) {
const data = Object.values(item.value[1]);
results.forEach((result, index) => {
if (item.value[0] == index)
result.push(parseFloat(data[index]));
});
item = iterator.next();
}
}
output = results;
}
如何让它发挥作用?
【问题讨论】:
-
你想如何指定输出的顺序?例如,数组中第一个对象的顺序是什么?
标签: javascript arrays