javascriptで踏んだ穴を記録します.


console.log(obj["moviesIndex "]);//1
 // console.log(obj.moviesIndex);//undefined
var obj11 = {
    "indesxsx":"1111"
}
console.log(obj11.indesxsx)1111
 
ここに「…moviesIndex={index}」というスペースがあります.
{
「moviesIndex」:「1」、/ここの「moviesIndex」にはスペースがありますので、keyはmoviesIndexではなく、moviesIndexにスペースを入れます.
)
ここで3時間かかりました.小さいバグを探して記録してください.
ここにcsdnで探している資料の一つの知識点が付いています.
本論文のリンク:https://blog.csdn.net/qq_34268861/articale/detail/80785327
1、変数ではありません
var obj = {};  
obj.AttrName = 'Tom' 
注意:通過 オブジェクト・属性名 属性値を取得する場合、属性名は変数ではありません.
2、変数でもいいです
元のデータ配列:
var rawDataList = 
[
    {
        "countDate": "2018-04-08",
        "countNum": "2"
    },
    {
        "countDate": "2018-04-18",
        "countNum": "2"
    },
    {
        "countDate": "2018-04-23",
        "countNum": "7"
    }
 ]
上記データを処理する:
function Day2Mon2Year(dataList,prop){
	for(var i = 0; i < dataList.length; i++){
		var obj = rawDataList[i]
		//  :Uncaught TypeError: Cannot read property 'replace' of undefined
		var dateAttr = obj.prop
		//   :  prop   ,         .    
		var dateAttr = obj[prop]
	}
}
//    :Uncaught TypeError: Cannot read property 'replace' of undefined
Day2Mon2Year.(rawDataList,'countDate');
まとめ:一、属性名が (固定値)であれば、属性値を取得する方法は、
  • .
  • [ ]
  • 二、属性名が (固定されていない値)の場合、属性値の取得方法は、
  • [ ]