telArray[i].includes is not a function
Есть массив из json файла с номерами телефонов (+7.. и 8..), нужно сделать так, чтобы все номера телефонов отображались с 8, а не +7.. и обязательно через .includes()
var fs = require("fs");
var contents = fs.readFileSync("telep.json");
var jsonContent = JSON.parse(contents);
let telArray = [],
cnt = 0;
for (let i = 0; i < jsonContent.length; i++) {
if(jsonContent[i].TEL == undefined || jsonContent[i].TEL == '' ) continue;
telArray.push(jsonContent[i].TEL);
}
for (let i = 0; i < telArray.length; ++i) {
if(telArray[i].includes('+7')) {some code}
}
возвращает telArray[i].includes is not a function
почему? и как лучше сделать проверку массива на какую-то часть строки?
Ответы (1 шт):
Автор решения: entithat
→ Ссылка
Если надо заменить +цифра на 8, то можно так. Не использую includes(), потому что нам надо проверить не только +7, но и +другие цифры. Поэтому вместо include() вполне логично использовать replace().
// Ваша часть для файла, у нас же сразу готовый массив будет
// const fs = require("fs");
// const contents = fs.readFileSync("telep.json");
// const jsonContent = JSON.parse(contents);
const telArray = [];
const jsonContent = [{TEL: '+996700575270'}, {TEL: ''}, {TEl: 89244411111}, {TEL: '+79244222222'}];
for (let i = 0; i < jsonContent.length; i++) {
if (jsonContent[i].TEL == undefined || jsonContent[i].TEL == '') {
continue;
}
telArray.push(String(jsonContent[i].TEL)); // Записываем сразу как строку
}
for (let i = 0; i < telArray.length; ++i) {
telArray[i] = telArray[i].replace(/^\+\d/, '8')
}
console.log(telArray);
P.S. Если надо заменить код международного формата, то надо так же проверять другие форматы, кроме как одной цифры.