我正在尝试创建一个for循环,该循环将在删除不需要的单词后最终返回经过过滤的字符串。
例如,当给定红色黄色绿色黑色蓝色白色时,我希望输出为红色绿色蓝色
const givenString = 'red yellow green black blue white';
const unwantedWords = ['yellow', 'black', 'white'];
for(i = 0; i < unwantedWords.length; i++){
let finalString = givenString.replace(unwantedWords[i], '');
console.log(finalString)
}
问题是这将返回多个日志,每个日志都删除了三个单词之一。不是删除所有单词的最终日志
答案 0 :(得分:3)
只想分享一本漂亮的ES6影片。
const givenString = 'red yellow green black blue white';
const unwantedWords = ['yellow', 'black', 'white'];
let finalString = givenString;
for (i = 0; i < unwantedWords.length; i++) {
finalString = finalString.replace(unwantedWords[i], '');
}
console.log(finalString)
您每次都在循环内定义变量,因此本质上您只是过滤掉并丢弃了它。您应该在循环外定义它,并在循环内更改它。
fun scanQRCode(bitmap: Bitmap): String? {
val options = FirebaseVisionBarcodeDetectorOptions.Builder()
.setBarcodeFormats(FirebaseVisionBarcode.FORMAT_QR_CODE)
.build()
val detector = FirebaseVision.getInstance().getVisionBarcodeDetector(options);
val image = FirebaseVisionImage.fromBitmap(bitmap)
var id: String? = ""
detector.detectInImage(image).addOnSuccessListener {
if (it.isEmpty()) {
id = null
return@addOnSuccessListener
}
for (firebaseBarcode in it) {
val a = it[0].rawValue ?: ""
id = a
}
}.addOnFailureListener {
id = null
}
return id
}
答案 1 :(得分:1)
您的givenString
不变。每次将finalString
的新更改从每个循环finalString
更改为givenString
时,const givenString = 'red yellow green black blue white';
const unwantedWords = ['yellow', 'black', 'white'];
let finalString = givenString;
for (i = 0; i < unwantedWords.length; i++) {
finalString = finalString.replace(unwantedWords[i], '');
}
console.log(finalString)
都会更改。
if True:
print("hi")