如何使用JavaScript遍历JSON数组仅提取指定键生成目标格式输出
实现方案
随机返回单个IP组合的实现(符合每次调用返回不同结果的需求)
var bodyObject = [ { "ServiceAddress": "10.X.X.125", "ServiceConnect": {}, "ServicePort": 80 }, { "ServiceAddress": "10.X.X.126", "ServiceConnect": {}, "ServicePort": 80 } ]; // 封装为可重复调用的函数,每次调用返回随机的IP组合 function getRandomServiceIp() { // 生成随机数组下标,实现随机选取不同服务节点 const randomIndex = Math.floor(Math.random() * bodyObject.length); const currentService = bodyObject[randomIndex]; // 按照要求的格式返回结果 return { "MyIp": `http://${currentService.ServiceAddress}:${currentService.ServicePort}` }; } // 调用示例 console.log(getRandomServiceIp());
批量生成所有IP组合的实现
如果需要一次性输出所有服务节点对应的格式数据,可使用如下代码:
const allResult = bodyObject.map(serviceItem => { return { "MyIp": `http://${serviceItem.ServiceAddress}:${serviceItem.ServicePort}` }; }); console.log(allResult);
代码说明
- 随机选取逻辑通过
Math.random()生成0到数组长度-1的合法下标实现,每次调用都会从服务列表中随机选取节点,满足动态返回不同组合的需求 - 如果需要兼容低版本JS运行环境,可将模板字符串替换为普通字符串拼接写法:
"http://" + currentService.ServiceAddress + ":" + currentService.ServicePort
内容的提问来源于stack exchange,提问作者Mahesh
相关产品推荐
相关产品推荐

