如果我向 var 添加“+”,为什么 JavaScript 会将 var 读取为字符串?

我的 firestore 文档中的字段名称为


videolink1-“一些视频链接”


videolink2-“一些视频链接”


videolink3-“一些视频链接”


我正在使用 for 循环来获取文档中存在的所有视频链接。


                if (doc.exists) {

                  

                   for (var i = 1; i == videocount; i++) { //videocount is 3


                    var data = doc.data();

                    var videolink = data.videolink+i;


  //creating new paragraph

                    var p = '<p class ="trackvideostyle">'+"Your Video Link : "+String(videolink)+'</p>\';


                    document.getElementById("btn").insertAdjacentHTML('beforebegin', p);


                    }

但是这个 for 循环正在创建 var 值,这些值被读取为字符串,并且 firestore 返回 NaN 因为我没有这些字段:


data.videolink+1


data.videolink+2   //Firestore is returning null as i dont have these document fields


data.videolink+3


我如何编写 for 循环,以便像这样创建 var 值,并且 firestore 将其读取为:


videolink1


videolink2


videolink3


UYOU
浏览 121回答 4
4回答

FFIVE

我想你可以尝试这样的事情var&nbsp;videolink&nbsp;=&nbsp;data[`videolink${i}`];请参阅:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

慕码人8056858

为什么它不起作用点运算符(属性访问器)具有更高的 precendense,因此首先对其求值,因此您可以获得属性的值,然后连接变量的值i。你该怎么办您可以使用另一个属性访问器 - 方括号,就像在数组中一样:data['videolink']您可以在方括号内构建属性名称:data['videolink' + i]或使用模板文字:data[`videolink${i}`]

DIEA

您正在使用“data.videolink+i”并且JavaScript不会评估“.”之后的值 相反,它被视为对象的属性。您需要使用[]进行评估。试试这个我希望这会起作用&nbsp; &nbsp; &nbsp; &nbsp; if (doc.exists) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (var i = 1; i == videocount; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var data = doc.data();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var videolink = data[videolink+i];&nbsp; &nbsp; &nbsp; &nbsp; //creating new paragraph&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var p = '<p class ="trackvideostyle">'+"Your Video Link :&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; "+String(videolink)+'</p>\';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.getElementById("btn").insertAdjacentHTML('beforebegin',&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;p);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }

慕标5832272

您可以通过使用来做到这一点1. 模板字符串..var videolink = `${data.videolink}${i}`..2. 连接()..&nbsp;var videolink = data.videolink.concat(i.toString());..
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript