如何访问字符串对象的 属性?

How do I access the property of an object that is a string?

我有一个对象需要在 before 钩子中将其从字符串转换为浮点数:

{ '$near': 
   { '$geometry': { type: 'Point', coordinates: [Array] },
     '$minDistance': '0',
     '$maxDistance': '10000'
   }
}

如果 $near 属性 是字符串,我该如何访问它?我需要将 'coordinates' 中的值从字符串转换为浮点数。

console.log(location['$near']);

不起作用

使用vanillaJS您可以访问如下坐标

let location = { '$near': 
   { '$geometry': { type: 'Point', coordinates: [{pointX: "1.23", pointY: "4.56"}] },
     '$minDistance': '0',
     '$maxDistance': '10000'
   }
}

location['$near']['$geometry']['coordinates'] //[{"x":"1.23","y":"4.56"}]

location['$near']['$geometry']['coordinates'].forEach(cor =>{
    console.log(cor.pointX);
  console.log(cor.pointY)
})

这应该有效:

let thelocation = { '$near': 
   { '$geometry': { type: 'Point', coordinates:  [ "144.982", "-37.864" ] },
     '$minDistance': '0',
     '$maxDistance': '10000'
   }
};
let coords = [parseFloat(thelocation.$near.$geometry.coordinates[0]),
              parseFloat(thelocation.$near.$geometry.coordinates[1])];
console.log(coords);

输出:

Array [ 144.982, -37.864 ]

location 一般保留给浏览器使用。尝试使用另一个变量名。此外,对象中的键都是字符串,因此除了您已经使用的方法(键访问器或点符号)之外,没有特殊的访问方式:

let _location = {
  '$near': {
    '$geometry': {
      type: 'Point',
      coordinates: [1,2]
    },
    '$minDistance': '0',
    '$maxDistance': '10000'
  }
}

console.log(_location['$near']['$geometry']['coordinates']);