我想返回一个对象,但我得到一个字符串
I want to return an Object, but I get a String
你好,我有一个相当奇怪的问题,没有多大意义。我有一个字符串变量,我想搜索具有相同名称的对象(也是对象)的属性。这样:
var ObjectProperty; /// multi-layer object
var PropertyName; //string
如果对象中的属性名称匹配,我想返回它。示例代码:
OBJECT:
Bird.Raven = {
Name:"Raven",
Color:"Black",
}
//Object
Bird.Duck = {
Name:"Duck",
Color: "Gray",
}
//Object
Bird.Cardinal = {
Name:"Cardinal",
Color: "Red",
}//Object
///ObjectProperty sample.
我想在"鸟"中找到的键:
var Cardinal = "Cardinal"; //string
///PropertyName sample.
我正在使用的当前函数,假设"n"是我要搜索的属性名称变量:
var searchBirds = function(n) {
for(var key in Bird) {
var keyName = key.toString();
if(keyName == n){
console.log("bird " + key + " has been found.");
console.log(typeof key);//RETURNS STRING
return key;
}
else{
console.log(n + " could not be found")
};
}
}
当这应该是一个对象时,为什么它返回一个字符串?如何让它将密钥作为对象返回?怎么了?香草Javascript首选。
感谢您的帮助,希望这是有道理的!
语句for(var key in Bird)
循环访问Bird
对象上可枚举属性的名称。若要获取该属性的值,请执行Bird[key]
。
例:
var key, birdObject;
for (key in Bird) {
birdObject = Bird[key];
console.log(key + ".Color = " + birdObject.Color);
}
。将输出
乌鸦颜色 = 黑色鸭子颜色 = 灰色红衣主教颜色 = 红色
。没有指定的顺序(尽管几乎所有引擎都会按照属性添加到对象的顺序来执行它们[前提是没有一个属性名称都是数字,在这种情况下有更多的变化] - 但这不在规范中)。
相关文章:
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 制作一个regex来验证只有一个数字的字符串
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- NodeJS在一个较大的字符串中获取一个字符串的索引
- jquery从2个json字符串构建一个复选框表单
- 在Javascript中将一个值和字符串数组转换为if语句
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何使用另一个字符串作为模板从字符串中提取数据
- 用jQuery将字符串从一个类替换为另一个类
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- JavaScript:如何创建一个具有字符串名称的对象
- 如何从 javascript 中可能具有一个或多个图像的字符串中仅获取图像名称
- 在不使用循环的情况下,从一个数据库字符串值向javascript数组添加多个对象
- 从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
- 当我JSON.stringfy(对象)时,我得到一个疯狂的字符串作为值
- 我可以使用JS一次使用JSON数组中的一个字符串吗
- 使用javascript替换字符串中除第一个和最后一个之外的所有字符
- 获取一个对象´s属性的名称使用字符串
- 删除一个“;从javascript中的字符串末尾