@DragonFly попробуй переустановить
Содержит - не работает
-
https://vk.com/alinacat5 https://vk.com/id416041287 https://vk.com/id509893152Вот ссылки на каких то детей. Вот мне надо проверить есть ли в списке эти ссылки.
по сути два тхт файла. если один файл содержит такую ссылку, то хочу игнорировать её
-
@freeliman
@drprime said in Содержит - не работает:@freeliman
Я кажется понял Вашу проблему.У вас список вида
url:текст?Если так, то действие не будет работать, если искать
url, так как требуется полное совпадение, то естьurl:текстО чем я с самого начала и сказал )
-
@qwaros said in Содержит - не работает:
@usertrue кто вам такое сказал? indexOf ищет подстроку указанную. НЕважно какая часть это.
Документация JS, например тут https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf#Description
@qwaros said in Содержит - не работает:
var re = "alinacat5"; var text = "https://vk.com/alinacat5:Some text"; if(text.indexOf(re)){ log(true) } else { log(false) }
Этот ваш пример про поиск по строке. А есть два разных IndexOf и речь была о массиве(списке)
@usertrue said in Содержит - не работает:
@freeliman Содержит(indexOf) в списках работает только по полному совпадение.
Вот пример как будет
var arr = ["привет мир", "яблоко"]; log(arr.indexOf("привет")>-1); //return false log(arr.indexOf("привет мир")>-1); //return true -
@usertrue said in Содержит - не работает:
@qwaros said in Содержит - не работает:
@usertrue кто вам такое сказал? indexOf ищет подстроку указанную. НЕважно какая часть это.
Документация JS, например тут https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf#Description
@qwaros said in Содержит - не работает:
var re = "alinacat5"; var text = "https://vk.com/alinacat5:Some text"; if(text.indexOf(re)){ log(true) } else { log(false) }
Этот ваш пример про поиск по строке. А есть два разных IndexOf и речь была о массиве(списке)
@usertrue said in Содержит - не работает:
@freeliman Содержит(indexOf) в списках работает только по полному совпадение.
Вот пример как будет
var arr = ["привет мир", "яблоко"]; log(arr.indexOf("привет")>-1); //return false log(arr.indexOf("привет мир")>-1); //return trueДля массива да, но что мешает собрать список (массив) в строку да тестануть? Если массив небольшой, потом если нашли соответствие, перебираем массив в поисках нужного ключа, если нет идем дальше
-
@qwaros От скуки сделал тест скорости. Сравнил метод join + indeOf и цикл for + indexOf
var testArr = []; var strTest = "Цена от 50000"; for(i=1;i<=100000;i++) { testArr.push("Пишу скрипты любой сложности, очень дорого. Цена от " +i); }; var resultTime = {}; function speedTest(func) { return function() { var startTime = Date.now(); func.apply(null,arguments); if(!resultTime[func.prototype.constructor.name]) resultTime[func.prototype.constructor.name] = 0; resultTime[func.prototype.constructor.name] +=Date.now() - startTime; }; }; function strJoin(arr,str) { return arr.join(",").indexOf(str); }; function cycle(arr,str) { for(i = arr.length - 1;i>=0;i--) { if(arr[i].indexOf(str)>=0) return true; }; }; var speedJoin = speedTest(strJoin); var speedCycle = speedTest(cycle); for (i = 0;i<10;i++) { speedJoin(testArr,strTest); }; for (i = 0;i<10;i++) { speedCycle(testArr,strTest); }; for(func in resultTime){ console.log("Среднее время функции: " + func + ":" + resultTime[func]/10 + "ms"); };Результат
Среднее время функции: strJoin:49ms
Среднее время функции: cycle:7.7ms
