如何使用NodeJS从解析后的JSON结果中获取add_ele的数值
NodeJS 获取数组中指定code对应的value值
首先,你给出的数组结构如下(注意实际代码中需确保是合法的JS数组字面量):
const data = [ { code: 'switch', value: true }, { code: 'countdown_1', value: 0 }, { code: 'add_ele', value: 151800 }, { code: 'cur_current', value: 0 }, { code: 'cur_power', value: 0 }, { code: 'cur_voltage', value: 2140 }, { code: 'test_bit', value: 0 }, { code: 'voltage_coe', value: 0 }, { code: 'electric_coe', value: 0 }, { code: 'power_coe', value: 0 }, { code: 'electricity_coe', value: 0 }, { code: 'fault', value: 0 }, { code: 'relay_status', value: 'last' }, { code: 'child_lock', value: false } ];
下面是几种实用的实现方法:
方法一:使用Array.find()(最直接)
利用数组的find方法匹配code为add_ele的对象,再取出对应的value:
const targetItem = data.find(item => item.code === 'add_ele'); const addEleValue = targetItem ? targetItem.value : undefined; // 处理找不到目标的情况 console.log(addEleValue); // 输出:151800
方法二:使用Array.forEach()遍历
如果需要在遍历过程中做额外操作,或者兼容更旧的Node版本,可以用forEach:
let addEleValue; data.forEach(item => { if (item.code === 'add_ele') { addEleValue = item.value; } }); console.log(addEleValue); // 输出:151800
方法三:转成键值对对象(适合频繁取值场景)
如果需要多次从这个数组中获取不同code对应的值,可以先把数组转成以code为键、value为值的对象,后续取值更便捷:
const codeValueMap = data.reduce((map, item) => { map[item.code] = item.value; return map; }, {}); const addEleValue = codeValueMap.add_ele; // 也可以用 codeValueMap['add_ele'] console.log(addEleValue); // 输出:151800
后续要取其他值(比如cur_voltage),直接用codeValueMap.cur_voltage即可,无需再次遍历数组。
内容的提问来源于stack exchange,提问作者user2916359
相关产品推荐
相关产品推荐

