javascript - 如果某个值在 array 中,则选中 insentively,如果大小写不匹配,则将它的替换为新值

  显示原文与译文双语对照的内容
0 0

我正在尝试用正确的大小写敏感度替换 array 中的值。 这是因为我试图纠正用户输入。 从页面中检索正确的套件,用户将有一个值 array,它的中有些将不正确。

比如:


userValues = ["apple321","orange_22","pineApple","Cantelope","grASShopper_9000"];
var value1 ="Apple321";
var value2 ="orange_22";
var value3 ="Cantelope";
var value4 ="GrassHopper_9000";

然后,在某个函数经过所有值之后,结果将是:


userValues = ["Apple321","orange_22","pineApple","Cantelope","GrassHopper_9000"];

我有 value1value2 等的原因是,我已经创建了一个循环来通过对象运行。 只是不确定如何比较结果值。 下面是我已经做过的事情:


//When the user enters data, it's sometimes case insensitive. This normalizes the data.
function NormalizeData(downloaded_data)
{
 $.each(downloaded_data, function(website,streams){
 $.each(streams, function(stream_name,value){
 stream_list[website]//This is the global variable array
 value.displayName;//This is the value I need to check case sensitivity, and replace with the new case if different
 });
 });
}

以下是请求的数据结构:


downloaded_data = {
 twitch_tv : {
 timthetatman : {
 Online:"1",
 Website:"twitch_tv",
 displayName:"TimTheTatman"
 }
 }
}

streamlist = {
 twitch_tv : {
 ["timthetatman"]
 }
 hitbox_tv: {
 []
 }
}

时间: 原作者:

0 0

我想出来了。因为我使用了一个 array,而不是一个对象,它实际上比我想的更简单。 我在每个值上运行一个循环,如果两个值匹配,但非小写值,我将它替换为 lowercase 。


function NormalizeData(downloaded_data)
{ 
 $.each(downloaded_data, function(website,streams){
 $.each(streams, function(stream_name,value){
 $.each(stream_list[website], function(arrKey,arrVal){
 if(arrVal.toLowerCase() == stream_name.toLowerCase() && stream_list[website][arrKey]!== value.displayName)
 stream_list[website][arrKey] = value.displayName;
 });
 });
 });
}

如果 array 被称为 Array1 和值 Value1,则为简化:


var Array1 = ["apple"];
var Value1 = ["Apple"];
$.each(Array1, function(arrKey,arrVal){
 if(arrVal.toLowerCase() == Value1.toLowerCase() && arrVal!== Value1)
 Array1[arrKey] = Value1;
});

原作者:
...