Rumah > Soal Jawab > teks badan
Dua tatasusunan: textArr
和 valueArr
,组合这两个数组,形成如:1^Q1
的字符串。中间用n
dipisahkan. (Bersedia untuk menghantarnya ke textarea)
Setiap kali, baris kosong tambahan ditambahkan pada kepala rentetan Kod ini sangat pendek, tetapi saya tidak menemuinya, yang mengecewakan. Tolong bantu dan lihat. Terima kasih!
choicesToString () {
let textArr = ['Q1', 'Q2', 'Q3'];
let valueArr = [1, 2, 3];
let choiceArr = []
for (let i = 0; i < textArr.length; i++) {
if (isNull(valueArr[i])) { valueArr[i] = '' }
if (isNull(choiceArr[i])) { choiceArr[i] = '' }
if ((valueArr[i] === '') && (choiceArr[i] === '')) { continue }
choiceArr.push(valueArr[i] + '^' + textArr[i])
console.log(`${i}: ${choiceArr}`)
}
// TODO: BUG! Add an empty cell at the first position. FUCK!!!
// 难道要我被迫加上这段可耻的代码...
// choiceArr.splice(0, 1)
console.log(choiceArr)
return choiceArr.toString().split(',').join('\n')
}
isNull (arg) {
return !arg && arg !== 0 && typeof arg !== 'boolean' ? true : false
}
曾经蜡笔没有小新2017-07-05 10:41:37
Bila
for
循环当i
等于0
, tengok ayat ni
if (isNull(choiceArr[i])) { choiceArr[i] = '' }
Pada masa inichoiceArr
是[]
,choiceArr[i]
即choiceArr[0]
,为undefined
,isNull
会返回true
,所以会执行choiceArr[i] = ''
,此时数组的长度已经变成了1
,然后执行下面的push之后,此时choiceArr
的值为["", "1^Q1"]
,所以for循环第一遍结束以后,choiceArr
的长度不是1
而是2
.
Dangi
等于1
时,因为choiceArr[1]
的值是"1^Q1"
, jadi
if (isNull(choiceArr[i])) { choiceArr[i] = '' }
Penghakiman ialah false
,然后执行下面的push语句,此时choiceArr
的值为["", "1^Q1", "2^Q2"]
;
当i
等于2
时,同i=1
的情况,循环结束之后choiceArr
为["", "1^Q1", "2^Q2", "3^Q3"]
.
Ringkasnya, nilai nol ""
是在i=0
dijana.
天蓬老师2017-07-05 10:41:37
Seperti yang dinyatakan di atas, ayat anda if (isNull(choiceArr[i])) { choiceArr[i] = '' }
sangat pelik Jika anda perlu menulisnya seperti ini, tambahkan penghakiman.
if (choiceArr.length > 0 && isNull(choiceArr[i])) { choiceArr[i] = ''; }