比较并获取Javascript上对象数组的一些值

比较并获取Javascript上对象数组的一些值,javascript,arrays,object,Javascript,Arrays,Object,此变量数据是否与输出匹配?我试着把它组合起来,但没有用,它只产生了一行,这与结果不符。我尝试使用sort,但我仍然不知道如何显示这样一个数组的两面 //Output Associative-Array [ ["row3", "row5"], ["row1", "row2"], ["row4", ""], ["", "row6"],

此变量数据是否与输出匹配?我试着把它组合起来,但没有用,它只产生了一行,这与结果不符。我尝试使用sort,但我仍然不知道如何显示这样一个数组的两面

//Output Associative-Array
[
["row3", "row5"],

["row1", "row2"],

["row4", ""],

["", "row6"],

["row7", "row8"]
]

这是我的密码

   const arr = [
    {id: 2, value: 'row1', position: 'S'},
    {id: 2, value: 'row2', position: 'A'},
    {id: 1, value: 'row3', position: 'S'},
    {id: 3, value: 'row4', position: 'S'},
    {id: 1, value: 'row5', position: 'A'},
    {id: 4, value: 'row6', position: 'A'},
    {id: 5, value: 'row7', position: 'S'},
    {id: 5, value: 'row8', position: 'A'}
  ]


您可以使用array reduce方法执行以下操作

arr=[
{id:2,值:'row1',位置:'S'},
{id:2,值:'row2',位置:'A'},
{id:1,值:'row3',位置:'S'},
{id:3,值:'row4',位置:'S'},
{id:1,值:'row5',位置:'A'},
{id:4,值:'row6',位置:'A'},
{id:5,值:'row7',位置:'S'},
{id:5,值:'row8',位置:'A'}
]
arr.sort((a,b)=>a.id-b.id);
ret=arr.reduce((上一个,当前)=>{
如果(!上一个[当前id-1]){
上一个[curr.id-1]=['',];
}
如果(当前位置=='A'){
上一个[当前id-1][1]=当前值;
}否则{
上一个[当前id-1][0]=当前值;
}
返回上一个;
}, {});

console.log(Object.values(ret))您可以使用array reduce方法执行以下操作

arr=[
{id:2,值:'row1',位置:'S'},
{id:2,值:'row2',位置:'A'},
{id:1,值:'row3',位置:'S'},
{id:3,值:'row4',位置:'S'},
{id:1,值:'row5',位置:'A'},
{id:4,值:'row6',位置:'A'},
{id:5,值:'row7',位置:'S'},
{id:5,值:'row8',位置:'A'}
]
arr.sort((a,b)=>a.id-b.id);
ret=arr.reduce((上一个,当前)=>{
如果(!上一个[当前id-1]){
上一个[curr.id-1]=['',];
}
如果(当前位置=='A'){
上一个[当前id-1][1]=当前值;
}否则{
上一个[当前id-1][0]=当前值;
}
返回上一个;
}, {});

console.log(Object.values(ret))这里的问题是什么?如果您的代码无法正常工作,您需要发布失败的代码,我们将帮助您修复。我已对其进行了编辑。感谢您的建议请将文本数据显示为文本,而不是文本图片的链接。你可以用。我已经编辑过了,它可以帮我整理。这里有什么问题?如果您的代码无法正常工作,您需要发布失败的代码,我们将帮助您修复。我已对其进行了编辑。感谢您的建议请将文本数据显示为文本,而不是文本图片的链接。你可以用。我已经编辑了它,它帮助我整理它。这增加了我对reduce方法的洞察力。谢谢,我真的很感激。这增加了我对reduce方法的洞察力。谢谢,我真的很感激。