首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查Json中元素的顺序没有改变

如何检查Json中元素的顺序没有改变
EN

Stack Overflow用户
提问于 2019-09-20 21:12:38
回答 3查看 98关注 0票数 0

因此,我正在尝试在postman中进行后端测试,它将测试页面上显示的元素以及元素的顺序,例如:

假设我有一个实现了“浏览页面”功能的网页,你可以在页面上显示的5个元素或10个元素之间切换(这是在前端)。

在后端测试中,我首先请求获取前5个元素:1、2、3、4、5,然后请求获取10个元素:1、2、3、4、5、6、7、8、9、10

我经常发现,在提出第二个请求时,前五个元素中的一些元素与下一个五个元素混合在一起,看起来就像这样: 2,3,4,6,5,1,7,8,9,10

我想做一个测试,它将验证前5个元素将保留为前5个元素,并且一旦要显示的元素数量从5更改为10,将不会混合。如何使用javascript创建这样的函数?

前面包含5个元素的Json示例

代码语言:javascript
运行
复制
[ { "username": "1" } 
, { "username": "2" } 
, { "username": "3" } 
, { "username": "4" } 
, { "username": "5" } 
] 

包含10个元素的Json示例

代码语言:javascript
运行
复制
[ { "username": "4"  } 
, { "username": "2"  } 
, { "username": "3"  } 
, { "username": "6"  } 
, { "username": "5"  } 
, { "username": "1"  } 
, { "username": "7"  } 
, { "username": "9"  } 
, { "username": "8"  } 
, { "username": "10" } 
] 
EN

回答 3

Stack Overflow用户

发布于 2019-09-20 21:34:42

请使用此函数,如果相同,它将返回true

代码语言:javascript
运行
复制
const isSame = (arr1, arr2) => {
  return !arr1.some((item, index) => {
    return item.username !== arr2[index].username 
  });
}

var arr1 = [
  { "username": "1" },
  { "username": "2" },
  { "username": "3" },
  { "username": "4" },
  { "username": "5" } 
];

var arr2 = [
  { "username": "4"  },
  { "username": "2"  },
  { "username": "3"  },
  { "username": "4"  },
  { "username": "5"  },
  { "username": "6"  },
  { "username": "7"  },
  { "username": "9"  },
  { "username": "8"  },
  { "username": "10" }
];

isSame (arr1, arr2);
票数 3
EN

Stack Overflow用户

发布于 2019-09-20 21:38:13

据我所知,你需要一个函数来测试你的场景。

代码语言:javascript
运行
复制
function testFirstFive(initial, second) {
  let result = true;

  initial.forEach((element, index) => {
    console.log('comparing', element.username, 'with',  second[index].username);
    if (element.username !== second[index].username) {
      result = false;
    }
  });

  return result;
}

Initial是你的第一个五元组,第二个是你的第二个十元组。该函数将根据第二个数组元素检查第一个数组元素,并返回true/false,无论它们是否匹配。

票数 0
EN

Stack Overflow用户

发布于 2019-09-20 21:49:49

关于:“我想做一个测试,以验证前5个元素将保留为前5个元素,并且一旦要显示的元素数量从5个更改为10个,则不会被混合。我如何使用javascript创建这样的函数?”

代码语言:javascript
运行
复制
var Origin=
      [ { "username": "1" } 
      , { "username": "2" } 
      , { "username": "3" } 
      , { "username": "4" } 
      , { "username": "5" } 
      ]
  , Melting=
      [ { "username": "4"  } 
      , { "username": "2"  } 
      , { "username": "3"  } 
      , { "username": "6"  } 
      , { "username": "5"  } 
      , { "username": "1"  } 
      , { "username": "7"  } 
      , { "username": "9"  } 
      , { "username": "8"  } 
      , { "username": "10" } 
      ] 

for(let i=Origin.length;i--;)
  { 
  let pos = Melting.findIndex(e=>e.username===Origin[i].username)

  if(pos>0)
    {
    Melting.splice( pos, 1 )
    Melting.unshift( Origin[i] );
    }
  }

// verif :
for( let elm of Melting) {
  for (let [key, value] of Object.entries(elm)) {
    console.log(`${key}: ${value}`);
  }
}
代码语言:javascript
运行
复制
.as-console-wrapper { min-height: 100% !important; }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58029079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档