因此,我正在尝试在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示例
[ { "username": "1" }
, { "username": "2" }
, { "username": "3" }
, { "username": "4" }
, { "username": "5" }
]
包含10个元素的Json示例
[ { "username": "4" }
, { "username": "2" }
, { "username": "3" }
, { "username": "6" }
, { "username": "5" }
, { "username": "1" }
, { "username": "7" }
, { "username": "9" }
, { "username": "8" }
, { "username": "10" }
]
发布于 2019-09-20 21:34:42
请使用此函数,如果相同,它将返回true
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);
发布于 2019-09-20 21:38:13
据我所知,你需要一个函数来测试你的场景。
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,无论它们是否匹配。
发布于 2019-09-20 21:49:49
关于:“我想做一个测试,以验证前5个元素将保留为前5个元素,并且一旦要显示的元素数量从5个更改为10个,则不会被混合。我如何使用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}`);
}
}
.as-console-wrapper { min-height: 100% !important; }
https://stackoverflow.com/questions/58029079
复制相似问题