在REST-Assured Java中如何通过Title属性提取对应对象的ID?
通过Title获取对象ID的最佳方法
嗨,针对你有100+条数据、需要通过Title找对应ID的需求,用JavaScript数组的find()方法就是最方便高效的解决方案,完全不用手动查找~
单条匹配场景(找第一个符合条件的ID)
先把你的响应数据存到一个变量里,然后用find()定位目标对象:
// 假设这是你GET请求拿到的响应数据 const taskList = [ { "id": 81, "userId": null, "title": "test1", "status": "TODO" }, { "id": 564, "userId": null, "title": "test2", "status": "TODO" }, { "id": 660, "userId": null, "title": "test3", "status": "TODO" }, // 其他100+条任务数据 ]; // 查找title为"test3"的对象 const targetTask = taskList.find(task => task.title === "test3"); // 安全获取ID,避免找不到时出错 const targetId = targetTask ? targetTask.id : null; console.log(targetId); // 输出:660
find()方法会遍历数组,找到第一个符合条件的元素就停止遍历,所以在大数据量下效率也很高,不会做多余的计算。加上三元判断是为了处理没有匹配到对应title的情况,避免出现Cannot read properties of undefined的报错。
多条匹配场景(如果存在相同Title的对象)
如果你的数据里可能有多个title相同的对象,想要把它们的ID都找出来,可以用filter()配合map():
// 筛选出所有title为"test3"的对象 const matchingTasks = taskList.filter(task => task.title === "test3"); // 提取这些对象的ID到数组里 const matchingIds = matchingTasks.map(task => task.id); console.log(matchingIds); // 输出所有匹配的ID数组,比如[660, xxx, ...]
内容的提问来源于stack exchange,提问作者Arsenyev01
相关产品推荐
相关产品推荐

