在javascript中基于相同Id创建数组

在javascript中基于相同Id创建数组,javascript,jquery,Javascript,Jquery,这是一个示例请求对象 "stories": [ { "ID": "1", "TRADER_ID": "38", "IMAGE": "" }, { "ID": "2", "TRADER_ID": "38", "IMAGE": "" }, { "ID": "3", "TRADER_ID": "40", "IMAGE": "" }, { "ID": "4", "TRADER_ID": "40", "IMAGE": "" },] 像这样,我将有一个故事列

这是一个示例请求对象

"stories": [
{
  "ID": "1",
  "TRADER_ID": "38",
  "IMAGE": ""
},
{
  "ID": "2",
  "TRADER_ID": "38",
  "IMAGE": ""
},
{
  "ID": "3",
  "TRADER_ID": "40",
  "IMAGE": ""
},
{
  "ID": "4",
  "TRADER_ID": "40",
  "IMAGE": ""
},]

像这样,我将有一个故事列表,我想基于相同的交易者ID创建一个数组。因为我需要添加一个图像幻灯片滑块,对于唯一的Traader ID,我可以得到图像url

你可以使用ID作为数组的索引,交易者ID作为数字,并进行排序或按Numbers(交易者ID)查找元素。

我知道这很疯狂,但这是有效的。如果有人能简化它,请做:P

OP写道:“我需要像[“38”,“38”][“40”,“40”]这样的输出。”

var故事=[{
“ID”:“1”,
“交易员ID”:“38”
}, {
“ID”:“2”,
“交易员ID”:“38”
}, {
“ID”:“3”,
“交易员ID”:“40”
}, {
“ID”:“4”,
“交易员ID”:“40”
}];
(函数更改(数组){
var-id=[];
stories.forEach(v=>ids.push(v.TRADER_ID));
var-sortedar=[…新集合(Array.from(ids))];
var newOne=[];
var时间=0;
var obj={};
var结果=[];
var cb=[];
对于(变量i=0;i})(故事)请添加想要的结果和您尝试过的内容。也请看一下这里:“基于同一交易者ID”是什么意思?你可以举个例子吗?不知道你期望得到的结果是什么这个问题没有显示任何研究成果…你可以使用
reduce
map
获得类似的结果@ste2425太棒了。感谢you@KingUser没问题,很有趣。您可以将
reduce
更改为使用
map
作为其基础。然后您可以将任何内容分组为值、数组、函数和其他对象。但是
map
键相等性检查是通过引用进行的,因此可能没有多大用处。@ste2425再次感谢。