Javascript 按唯一值对对对象数组进行分组
我的数组有问题。我在论坛上没有发现类似的案例,所以我在这里寻求帮助 这里有一个例子,我得到了什么,我想在输出 输入:Javascript 按唯一值对对对象数组进行分组,javascript,node.js,Javascript,Node.js,我的数组有问题。我在论坛上没有发现类似的案例,所以我在这里寻求帮助 这里有一个例子,我得到了什么,我想在输出 输入: var array = [ {scanned_time : '2020-01-01 12:00:00', client : 11111, code : 'A11111'}, {scanned_time : '2020-01-01 12:00:00', client : 11111, code : 'A22222'}, {scan
var array =
[
{scanned_time : '2020-01-01 12:00:00',
client : 11111,
code : 'A11111'},
{scanned_time : '2020-01-01 12:00:00',
client : 11111,
code : 'A22222'},
{scanned_time : '2020-01-01 12:00:00',
client : 22222,
code : 'A33333'},
{scanned_time : '2020-01-02 12:00:00',
client : 11111,
code : 'A4444'}
]
“扫描时间”和“客户机”是一对独特的组合
我需要的输出:
var result =
[
['2020-01-01 12:00:00', 11111, 'A11111', 'A22222'],
['2020-01-01 12:00:00', 22222, 'A33333'],
['2020-01-02 12:00:00', 11111, 'A44444']
]
我用map、reduce等工具尝试了很多东西,但我什么也找不到,我甚至还没找到
提前谢谢
编辑:
起点:
let result = array.reduce(function (r, a) {
r[a.scanned_time] = r[a.scanned_time] || [];
r[a.scanned_time].push(a);
return r;
}, Object.create(null));
这给了我
{
'2020-10-26T13:33:00.000Z': [
{
AD_code: '852589',
scanned_time: 2020-10-26T13:33:00.000Z,
client_code: '12385'
},
{
AD_code: '951478',
scanned_time: 2020-10-26T13:33:00.000Z,
client_code: '12385'
}
],
'2020-10-26T13:32:00.000Z': [
{
AD_code: '369874',
scanned_time: 2020-10-26T13:32:00.000Z,
client_code: '12385'
}
]
}
您可以使用simple
for loop
来实现这一点,我做了一些相关工作。试试看
var数组=
[
{时间:'2020-01-01 12:00:00',
客户:11111,
代码:'A11111'},
{时间:'2020-01-01 12:00:00',
客户:11111,
代码:'A22222'},
{时间:'2020-01-01 12:00:00',
客户:22222,
代码:'A33333'},
{时间:'2020-01-02 12:00:00',
客户:11111,
代码:'A4444'}
]
常量结果=[]
for(数组的常量对象){
const acc=result.find(c=>c.includes(对象扫描时间)和&c.includes(对象客户端))
如果(!acc){
result.push([obj.scanned\u time.toString(),obj.client,obj.code])
}否则{
附件推送(目标代码)
}
}
console.log(result)
您可以添加尝试作为起点吗?var result=array.map(a=>Object.values(a))代码>嗨,欢迎来到StackOverflow。请提供一个最小的、完整的、可复制的代码示例。没有代码,任何人都无能为力。