【发布时间】:2017-07-15 11:41:45
【问题描述】:
请问,你能检查我的代码哪里出错了吗?它应该循环遍历 1 个数组以选择每个字符串,然后循环遍历第二个数组并检查第二个字符串的值是否包含第一个字符串的值。
for (var i = 0; i < oldLines.length; i++){
var subStringEach = oldLines[i];
var subStringEachNoDash = subStringEach.replace(/[^a-z0-9]/g,'');
// read New URLs and line by line save them as an object
var newLines = $('#newUrl').val().split(/\n/);
var newUrlResult = [];
for (var j = 0; j < newLines.length; j++){
var newUrlString = newLines[j];
var newUrlStringNoDash = newUrlString.replace(/[^a-z0-9]/g,'');
var isThere = newUrlStringNoDash.search(subStringEachNoDash);
if (isThere !== -1 ) {
newUrlResult[i] = newLines[j];
}
else {
newUrlResult[i] = "";
}
}
stockData.push({OldURL:oldLines[i],SearchSubstring:subStringEach,NewURL:newUrlResult[i]});
}
现在它只找到部分结果.. 我放置到第一个数组:
anica-apartment
casa-calamari-real
ostrovni-apartman
到第二个数组:
http://tempweb3.datastack.cz/be-property/anica-apartment/
http://tempweb3.datastack.cz/be-property/ostrovni-apartman/
http://tempweb3.datastack.cz/be-property/st-michael-apartment/
http://tempweb3.datastack.cz/be-property/casa-calamari-real/
它只会找到并返回casa-calamari-real, http://tempweb3.datastack.cz/be-property/casa-calamari-real/,而其他返回空..
有什么想法吗?
这里是 Codepen 上的完整代码:https://codepen.io/vlastapolach/pen/VWRRXX
【问题讨论】:
-
这是一个工作版本:jsfiddle.net/khrismuc/xh8y14jL
-
谢谢@ChrisG。它终于工作了:)
标签: javascript arrays search