检查一个单词是否与数组中的另一个单词匹配
Check if a word is matching with another who is in an array
我是JavaScript的初学者,如果您觉得它有点奇怪或容易,我提前为我的问题道歉。
例如,这是我的问题:
var category = ["orange","lemon","apple","banana"];
var myUrl = "www.website.com/products/15/lemon/image1.png";
当我的用户点击图像时,我将获得一个新的水果值,例如字符串"apple"。
var changeCategory = "apple";
检查我的一个水果的单词是否在 url 中并将其替换为新值的更有效方法是什么......或者如果新值实际上在 myUrl 变量中什么都不做?
请参阅以下代码。这个想法是获取每个category
元素并使用indexOf()
在myUrl
中查找它。如果 indexOf()
返回 -1 以外的内容,则已找到该单词,您可以通过 replace()
将其替换为 changeCategory
的值。
var category = ["orange", "lemon", "apple", "banana"];
var myUrl = "www.website.com/products/15/lemon/image1.png";
var changeCategory = "apple";
for (var i = 0; i < category.length; ++i) { // Consider each category word.
if (myUrl.indexOf(category[i]) >= 0) { // Is it in myUrl?
myUrl = myUrl.replace(category[i], changeCategory);
break; // If so, replace it and stop
} // looking at the remaining
} // words.
document.write(myUrl); // Test the result.
数组检查,如果元素存在
var category = ["Banana", "Orange", "Apple", "Mango"];
var changeCategory = category.indexOf("Apple");
输出
2
** 如果未找到元素,则return -1
。
解析网址
var url = window.location.href;
解析当前网址
返回一个数组 ["www.website.com","产品","15","柠檬","图像 1.png"]
var urlArray = url .split( '/' );
var currentFruit = urlArray[3]; // getting current fruit from url
urlArray[3] = "";
//在双引号中传递新水果名称
现在迭代数组以形成 URL。
var arrayLength = urlArray.length;
Var newUrl;
for (var i = 0; i < arrayLength; i++) {
if(i < arrayLength-1){
newUrl = newUrl+ urlArray[i]+ "/";
}else{
newUrl = newUrl+ urlArray[i];
}
}
现在你已经有了网址,只需做
window.location.href = newUrl; // redirect page to new url now.
当然,有很多方法可以剥猫皮。您可以使用简单的正则表达式来构建新 URL,如果它与旧 URL 不同,请使用它。否则,什么都不做,例如
var oldURL = 'www.website.com/products/15/lemon/image1.png';
var categories = /orange|lemon|apple|banana/;
var newCategory = 'apple'
var newURL = oldURL.replace(categories, newCategory);
if (newURL != oldURL) {
// go to newURL
}
仅当类别中的某个水果位于 URL 中并且替换水果与已有水果不同时,这才会创建一个新 URL。
您可以将类别设置为正则表达式。
var changeUrlCategory = function( url, newCat ) {
var cats = /(orange|lemon|apple|banana)/i;
return url.replace( cats, newCat );
};
var newUrl = changeUrlCategory( existingUrl, 'grape');
相关文章:
- JavaScript数组包含一个值
- 使用事件更改数组的一个元素
- 从 javascript 数组创建一个 Jquery 数组
- 使用javascript匹配字符串中数组的一个元素
- Angular2从数组创建一个列表
- 在Javascript数组或一个对象中存储多个数据所需的Tweak
- 你能给被劫持的JavaScript数组添加一个函数吗
- 从带有循环的数组中一个接一个地在画布上绘制形状
- 将图像数组从一个窗口传递到另一个窗口,并在javascript的新窗口中显示图像
- 使用拆分字符串的数组创建一个对象
- 多维数组 - 创建一个表
- 将数组从一个函数传递到另一个函数
- 如何将复选框值的数组从一个JSP页面传递到另一个页面
- 使用Knockout.Js将数组绑定到表,并将数组的一个项绑定到另一个元素
- 需要访问数组从一个js到另一个
- 我如何发送数据像数组从一个html文件到另一个html页面
- 从另一个对象和要保存的键数组生成一个对象的最简洁的方法
- 用另一个js数组填充一个javascript数组
- 将对象数组从一个函数传递到另一个函数
- 根据另一个值数组过滤一个对象数组,返回一个空列表