我努力找到我在其他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) 我有这个:
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 来“组合”或“减少”条目。
如果“合并”或“减少”在这里不是正确的术语,我们深表歉意。
我正在使用地图在我的应用程序中呈现 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) 考虑到所有已经存在的答案,我们尝试创建一个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)
使用的确实有可能key是空的/空白的。所以TypeScript在这里并没有错。因此,在这种情况下,它应该简单地使用占位符值之类的NA东西。
为此函数创建可重用的无错误打字稿版本的正确方法是什么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) 我有一个像这样的对象数组:
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) 我有一个对象数组,其中一些具有相同的月份名称,但基于日期的值不同。我们如何根据相同的属性值对数组对象进行分组,例如:
[ { 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) 我有一个看起来像这样的对象数组:
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)
但这显然不能满足我的要求。我确实对如何实现这一目标有一些想法,但是它们是非常古老的,我很想知道如何正确地做到这一点。任何帮助表示赞赏!
我得到了这种类型的数组,并且我想按整个数组将其仅按一列(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)
所以我怎么能从“ 组件 ” 按此数组分组?
我有一个对象数组,如下所示:
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) 例子:
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 ×8
arrays ×4
angular ×2
ecmascript-6 ×2
typescript ×2
foreach ×1
group-by ×1
node.js ×1
object ×1
reactjs ×1
rxjs ×1