我有一个python脚本,可以像这样向我提供一个数组作为输出:
['1.1.1.1-1.1.1.5','2.2.2.2-2.2.3.3','5.5.5.5-5.5.5.5','6.6.1.2-6.6.1.7']
这些是IP地址范围。但是,此数组的第三个元素不是范围。如何解析数组以查找此类元素并仅用单个IP替换它们?
例如:“ 5.5.5.5-5.5.5.5”应仅替换为“ 5.5.5.5”
我有一种方法。但是我不确定它是否完全有效。我正在寻找是否有更好的方法。
let ipRangeArray = ['1.1.1.1-1.1.1.5','2.2.2.2-2.2.3.3','5.5.5.5-5.5.5.5','6.6.1.2-6.6.1.7']
for (const [index, value] of ipRangeArray.entries()) {
let splitArray = value.split('-'); //splitArray = ['5.5.5.5','5.5.5.5']
splitArray[0] == splitArray[1] && (ipRangeArray[index] = splitArray[0])
}
console.log(ipRangeArray); // ["1.1.1.1-1.1.1.5", "2.2.2.2-2.2.3.3", "5.5.5.5", "6.6.1.2-6.6.1.7"]
谢谢
答案 0 :(得分:0)
您可以分割字符串并比较元素。
var array = ['1.1.1.1-1.1.1.5', '2.2.2.2-2.2.3.3', '5.5.5.5-5.5.5.5', '6.6.1.2-6.6.1.7'],
clean = array.map(s => (([l, r]) => l === r ? l : s)(s.split('-')));
console.log(clean);