相关疑难解决方法(0)

使用reduce在Javascript中分组

我努力找到我在其他stackoverflow帖子中寻找的解决方案,尽管我强烈地觉得它必须存在.如果确实如此,请向我转发正确的方向.

我试图通过javascript使用体育数据做一个非常标准的组.我有以下对象数组:

 const myData = [
    {team: "GSW", pts: 120, ast: 18, reb: 11},
    {team: "GSW", pts: 125, ast: 28, reb: 18},
    {team: "GSW", pts: 110, ast: 35, reb: 47},
    {team: "HOU", pts: 100, ast: 17, reb: 43},
    {team: "HOU", pts: 102, ast: 14, reb: 32},
    {team: "SAS", pts: 127, ast: 21, reb: 25},
    {team: "SAS", pts: 135, ast: 25, reb: 37},
    {team: "SAS", pts: 142, ast: 18, reb: 27}
 ]
Run Code Online (Sandbox Code Playgroud)

我的数据中的每一行都对应于特定篮球比赛的结果.简单地说,我想按数据分组,并将均值/平均函数应用于分组数据.我期望的结果是:

const groupedData = [
    {team: "GSW", pts: 118.3, …
Run Code Online (Sandbox Code Playgroud)

javascript group-by

4
推荐指数
1
解决办法
7778
查看次数

Typescript 按特定值减少对象数组

我有这个:

0: {orderType: "orderType1", orderCount: 0, orderDate: 47}
1: {orderType: "orderType1", orderCount: 21, orderDate: 47}
2: {orderType: "orderType1", orderCount: 3, orderDate: 47}
3: {orderType: "orderType1", orderCount: 5, orderDate: 48}
4: {orderType: "orderType1", orderCount: 32, orderDate: 48}
5: {orderType: "orderType1", orderCount: 12, orderDate: 48}
Run Code Online (Sandbox Code Playgroud)

我想实现这一目标:

0: {orderType: "orderType1", orderCount: 24, orderDate: 47}
1: {orderType: "orderType1", orderCount: 49, orderDate: 48}
Run Code Online (Sandbox Code Playgroud)

基本上我想通过组合基于 orderDate 的 orderCount 来“组合”或“减少”条目。

如果“合并”或“减少”在这里不是正确的术语,我们深表歉意。

typescript

4
推荐指数
1
解决办法
2万
查看次数

Reactjs 对象列表分组并映射

我正在使用地图在我的应用程序中呈现 op 产品列表。像这样:

<div className={`content ${isLoading ? 'is-loading' : ''}`}>
  <div className="panel">
    {!isLoading && orders.length > 0
      ? orders.map((order, index) => {
          const { productname, image, quantity, orderid, category } = order;
          return (
            <div className="product" key={orderid}>
              <div className="plaatjediv" onClick={this.toggleModal.bind(this)}>
                <img
                  className="img-responsive"
                  data-itemIndex={index}
                  src={image}
                />
              </div>
              <div className="productInfo">
                <p>{productname}</p>
                <p>Aantal: {quantity}</p>
              </div>
              <div className="bdone">
                <button
                  className="btn btn-lg btn-default btndone"
                  data-itemIndex={index}
                  onClick={this.handleDoneAction}
                >
                  Done
                </button>
              </div>
            </div>
          );
        })
      : null}
  </div>
</div>;
Run Code Online (Sandbox Code Playgroud)

状态命令加载了这段代码:

fetch('http://localhost:54408/api/orders/all/testing-9!8-7!6/' + todayy)
  .then(response => response.json())
  .then(parsedJSON …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

3
推荐指数
1
解决办法
1万
查看次数

groupBy 是 TypeScript 安全的

考虑到所有已经存在的答案,我们尝试创建一个groupBy不会抱怨 TypeScript 错误的箭头函数。在这个答案这个答案的指导下,我们已经有了这个工作代码:

const groupBy = <TItem>(
  items: TItem[],
  key: string
): { [key: string]: TItem[] } =>
  items.reduce(
    (result, item) => ({
      ...result,
      [item[key]]: [...(result[item[key]] || []), item],
    }),
    {}
  )
Run Code Online (Sandbox Code Playgroud)

然而,它仍然抱怨: 元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引类型“unknown”。 在“未知”类型上找不到带有“字符串”类型参数的索引签名。

使用的确实有可能key是空的/空白的。所以TypeScript在这里并没有错。因此,在这种情况下,它应该简单地使用占位符值之类的NA东西。

为此函数创建可重用的无错误打字稿版本的正确方法是什么groupBy

javascript arrays typescript

3
推荐指数
1
解决办法
927
查看次数

RxJs groupBy 带有一个对象数组,每个对象都有键和值数组

所以要求是这样的:我得到了一个对象数组(例如数组)

[
   { empDept: 'Engineering', empLoc: 'Pune', empName: 'John' },
   { empDept: 'Engineering', empLoc: 'Mumbai', empName: 'Harry' },
   { empDept: 'HR', empLoc: 'Pune', empName: 'Denis' },
   { empDept: 'Finance', empLoc: 'Mumbai', empName: 'Elvis' },
]
Run Code Online (Sandbox Code Playgroud)

我将有一个函数,该函数将接受属性名称作为参数,员工列表将根据该名称进行分组。因此,如果输入参数值为“empDept”,那么我想要的结果如下:

[
   {
      key: 'Engineering',
      values: [
         { empDept: 'Engineering', empLoc: 'Pune', empName: 'John' },
         { empDept: 'Engineering', empLoc: 'Mumbai', empName: 'Harry' },
     ]
   },
   {
      key: 'HR',
      values: [
         { empDept: 'HR', empLoc: 'Pune', empName: 'Denis' },
     ]
   },
   {
      key: 'Finance',
      values: [ …
Run Code Online (Sandbox Code Playgroud)

rxjs angular2-observables angular

2
推荐指数
1
解决办法
2317
查看次数

Javascript合并具有相同属性的对象

我有一个像这样的对象数组:

const arr = [
  {"id" : 1, "name" : "john", "age": 12, "fruits": "banana"},
  {"id" : 2, "name" : "john", "age": 12, "fruits": "apple"}
  {"id" : 3, "name" : "maria", "age": 13, "fruits": "grappes"}
  {"id" : 4, "name" : "maria", "age": 13, "fruits": "blackberry"}
  {"id" : 5, "name" : "camille", "age": 12, "fruits": "cherry"}
]
Run Code Online (Sandbox Code Playgroud)

我想为每个人(名字)创建一个对象并添加他们的对象。

所以最终的数组将是:

const arr = [
  {"id" : 1, "name" : "john", "age": 12, "fruits": ["banana", "apple"]},
  {"id" : 3, "name" : "maria", "age": …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

2
推荐指数
1
解决办法
998
查看次数

按相同的键对javascript数组对象进行分组

我有一个对象数组,其中一些具有相同的月份名称,但基于日期的值不同。我们如何根据相同的属性值对数组对象进行分组,例如:

 [ { month: 'Jan', value: 3 },
  { month: 'Jan', value: 3.5 },
  { month: 'Feb', value: 2.1 },
  { month: 'Mar', value: 6 },
  { month: 'Apr', value: 4.3 },
  { month: 'May', value: 5.5 },
  { month: 'Jun', value: 7 },
  { month: 'Jun', value: 9 },
  { month: 'Jul', value: 7 },
  { month: 'Jul', value: 9 },
  { month: 'Jul', value: 7 },
  { month: 'Aug', value: 9 },
  { month: 'Sep', value: 9 }, …
Run Code Online (Sandbox Code Playgroud)

javascript arrays foreach

1
推荐指数
1
解决办法
3730
查看次数

通过字母将对象数组转换为字典

我有一个看起来像这样的对象数组:

let stuff = [
  {
    "id": "48202847",
    "name": "Doe"
  },
  {
    "id": "17508",
    "name": "Marie"
  },
  {
    "id": "175796",
    "name": "Robert"
  },
  {
    "id": "175796",
    "name": "Ronald"
  },
]
Run Code Online (Sandbox Code Playgroud)

我想要得到的是一本看起来像这样的字典:

{
  "D": [{"id": "48202847", "name": "Doe"}],
  "M": [{"id": "17508", "name": "Marie"}],
  "R": [{"id": "175796", "name": "Robert"}, {"id": "175796", "name": "Ronald"}]
}
Run Code Online (Sandbox Code Playgroud)

请注意,如何将所有以“ R”开头的人列出在一个键下。

这是我的功能,用于创建以该人的姓名为键的字典:

const byId = (array) =>
  array.reduce((obj, item) => {
    obj[item.name] = item
    return obj
  }, {})
Run Code Online (Sandbox Code Playgroud)

但这显然不能满足我的要求。我确实对如何实现这一目标有一些想法,但是它们是非常古老的,我很想知道如何正确地做到这一点。任何帮助表示赞赏!

javascript

1
推荐指数
1
解决办法
53
查看次数

如何在Angular 4或5中按数组分组?

我得到了这种类型的数组,并且我想按整个数组将其仅按一列(first_name)分组,

[
   {
     first_name: "Apurv",
     date: "2018-01-22",
     is_present: "1", 
   }
   {
     first_name: "Lucky",
     date: "2018-01-22",
     is_present: "0", 
   }
   {
     first_name: "Apurv",
     date: "2018-01-20",
     is_present: "0", 
   }
   {
     first_name: "Lucky",
     date: "2018-01-20",
     is_present: "1", 
   }
]
Run Code Online (Sandbox Code Playgroud)

所以我怎么能从“ 组件 ” 按此数组分组?

arrays angular

0
推荐指数
1
解决办法
6721
查看次数

Javascript循环遍历对象数组并获取两个值并插入到新的对象数组中

我有一个对象数组,如下所示:

rows [
{ id: 3,
 title: "sometitle", 
 catid: 55, 
 img: "file" },
{ id: 4,
 title: "sometitle", 
 catid: 55, 
 img: "file" },
{ id: 5,
 title: "sometitle", 
 catid: 55, 
 img: "file" },
]
Run Code Online (Sandbox Code Playgroud)

我现在要做的是循环遍历对象数组并从每个对象中获取两个值(id和img)并将其插入到一个新的对象数组中,因此最终看起来像这样:

newArr [
{ id: 3,
 img: "file" },
{ id: 4,
 img: "file" },
{ id: 5,
 img: "file" },
]
Run Code Online (Sandbox Code Playgroud)

javascript arrays object ecmascript-6

0
推荐指数
1
解决办法
7798
查看次数

如何按对象值将对象数组分组为单独的数组?

例子:

array  = [{name:'Anna'}, {name:'Bob'}, {name:'Joe'}, {name:'Anna'}]
Run Code Online (Sandbox Code Playgroud)

我需要按名称对该数组进行分组以获得单独的数组,例如:

array 1 = [{name:'Anna'}, {name:'Anna'}]
array 2 = [{name:'Joe'}]
array 3 = [{name:'Bob'}]
Run Code Online (Sandbox Code Playgroud)

不知道如何执行此操作。谢谢!

javascript ecmascript-6

0
推荐指数
1
解决办法
1437
查看次数