检查一个单词是否与数组中的另一个单词匹配

Check if a word is matching with another who is in an array

本文关键字:数组 另一个 单词匹 是否 单词 一个 检查      更新时间:2023-09-26

我是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');