我想在用户输入以逗号分隔的字符串时找到社交媒体平台。我正在迭代每个逗号分隔的字符串,并检查它是否包含预定义的数组字符串上的任何字符串。它工作正常,但当我尝试设置状态时,它无法做同样的事情。
var social=["FACEBOOK","INSTAGRAM","PINTEREST","SINA","YOU","QUORA","GOOGLE","GITLAB",
"GITHUB","BLOGGER","MEDIUM","REDDIT","TWITTER","HACKERRANK","HACKEREARTH"]
var socStr=e.target.value;
var local=[];
socStr=socStr.split(",");
for(i=0;i<socStr.length;i++){
for(j=0;j<social.length;j++){
if(socStr[i].toUpperCase().includes(social[j])){
local=local.concat(social[j]);
console.log(local);
break;
}
}
if(i===socStr.length-1){
this.setState({
data:{
...this.state.data,
socArr:local
}
},()=>console.log(this.state.data.socArr))
}
}
它正确打印了本地数组的值,但其值未设置为状态变量socArr。
答案 0 :(得分:0)
为了更好的可读性,我重新编写了一些代码。下面的代码对我来说很好:
myData %>%
mutate(reflectanceSfp = replace(reflectanceSfp,
bandNumber %in% badBands, NA))