【发布时间】:2021-08-16 03:47:28
【问题描述】:
我的 react 应用程序中有一个案例,我必须检查数组中对象的值是否按顺序相同,并且它们的其他属性按顺序增加 1,然后如果满足条件,则将其推送到新数组。序列中的值数量由输入提供。
例如,用户想要将 4 个对象推送到具有 "status": true 的新数组中
objects = [
{
"someID": 0,
"status": false,
},
{
"someID": 1,
"status": false,
},
{
"someID": 2,
"status": true,
},
{
"someID": 3,
"status": true,
},
{
"someID": 4,
"status": true,
},
{
"someID": 6,
"status": true,
},
{
"someID": 7,
"status": false,
},
{
"someID": 8,
"status": false,
},
{
"someID": 9,
"status": true,
},
{
"someID": 10,
"status": true,
},
{
"someID": 11,
"status": true,
},
{
"someID": 12,
"status": true,
},
]
从我的一些 ID 为 2、3、4、6 的示例对象中,满足具有 status: true 的条件,但它们的 someID 值不会按顺序增加 1,另一方面,那些具有 someID 9、10 的对象, 11, 12 的 status 值为 true,someID 的值依次增加 1。所以结果应该是
newArray = [
{
"someID": 9,
"status": true,
},
{
"someID": 10,
"status": true,
},
{
"someID": 11,
"status": true,
},
{
"someID": 12,
"status": true,
},
]
【问题讨论】:
-
这里的输出应该是什么?
-
一个包含满足要求的对象的数组,对于我提供的示例,它将是 newArray = [ {"someID": 2,"status": true,}, {"someID": 3, "status": true,}, {"someID": 4,"status": true,}, ]
-
连续2次这样的情况预计会有什么结果?你有 [2,3] 和 [3,4] 满足条件,结果如何?当您有多个匹配项时,您只希望第一个序列作为返回?它是仅基于特定对象属性还是应该匹配该属性并且所有其他道具(除了 someID)应该匹配?
-
第一次遇到多个匹配就足够了,实际上我问错了,现在我明白了,情况是推送到新数组的对象需要具有相同的状态属性及其
someID属性值必须按顺序增加,即我们需要 4 个(仍然值来自用户,可以是 4,但可以是 3 或 1 或 5)对象按顺序与"status": true和它们的"someID"顺序像 [0,1, 2,3] 或 [3,4,5,6] 但不能是 [3,4,6,7] 即使它们的状态按顺序为真@buzatto
标签: javascript arrays reactjs sorting