В массиве, как я могу сделать распознавание между элементами, которые они IP? - PullRequest
1 голос
/ 25 марта 2020

У меня есть один массив, как показано ниже:

array = [["127.0.0.1"],["127.0.0.1"],[],[]]

и я хочу извлечь один из IP-адресов. Проблема в том, что я хочу распознать разницу между одним элементом с IP-адресом и пустыми элементами. фильтр для распознавания номера, но не могу получить результат, сейчас я пытаюсь так:

let IpString = array.split("\"");

///and gave me this bellow result

Array(5) ["[[", "127.0.0.1", "],[", "127.0.0.1", "],[],[]]"]
browser_prototype.js:268
length:5
__proto__:Array(0) [, …]
0:"[["
1:"127.0.0.1"
2:"],["
3:"127.0.0.1"
4:"],[],[]]"

Но я думаю, что я должен найти способ, который может распознавать между пустыми элементами и элементами IP, тогда мне нужен только один из IP потому что всегда есть такие же и равные. Я ищу этот ниже результат:

127.0.0.1

1 Ответ

1 голос
/ 25 марта 2020

Я не уверен, что понимаю, что вы пытаетесь сделать, но вы, если вы уверены, что ваш массив будет пустым или будет иметь IP-адрес, вам, возможно, просто нужно проверить длину, чтобы увидеть, есть ли что-нибудь в массиве.

Здесь я использую функцию filter. Он принимает обратный вызов с аргументом и ожидает, что обратный вызов вернет boolean

const array = [["127.0.0.1"],["127.0.0.1"],[],[]];
// we use the filter function to check for the length of each sub-arrays.
// here, a length of 0 would evaluate as falsy, thus not including the empty array.
const ips = array.filter(item => item.length);
console.log(ips.length);

По желанию, благодаря комментарию blex , вы можете отобразить свой многомерный массив в одном измерении. Это легче для понимания. Если это так, проверьте наш их комментарий

...