我正在尝试使用动态名称访问对象的属性.这可能吗?
const something = { bar: "Foobar!" };
const foo = 'bar';
something.foo; // The idea is to access something.bar, getting "Foobar!"
Run Code Online (Sandbox Code Playgroud) 我正在检查是否存在一个对象属性,其中包含一个保存有问题的属性名称的变量.
var myObj;
myObj.prop = "exists";
var myProp = "p"+"r"+"o"+"p";
if(myObj.myProp){
alert("yes, i have that property");
};
Run Code Online (Sandbox Code Playgroud)
这是undefined因为它正在寻找,myObj.myProp但我希望它来检查myObj.prop
可能重复:
javascript对象,访问变量属性名称?
试图在我的JS中获得更高级...
我有一个自定义对象:
Object myObject = new Object();
myObject.thing = anythingHere;
Run Code Online (Sandbox Code Playgroud)
我希望能够通过传入一个字符串来检索自定义对象属性...例如:
var propertyString = 'thing';
alert(myObject.propertyString);
Run Code Online (Sandbox Code Playgroud)
我无法理解这一点.我已经查看了一些自定义对象的教程 - 但没有显示如何获取我不知道名称的属性...另外 - 如果可能的话,我想避免遍历所有属性...
谢谢!!!
如何使用变量作为键来访问对象.这是我的代码示例:
var o = {"k1": "111", "k2": "222"};
alert(o.k1); //working fine
var key = "k"+1; alert(key); // k1
alert(o.key); //not working
Run Code Online (Sandbox Code Playgroud) 我正在使用"json"从db中提取数据.如何获取特定列的所有值.
我想获得"PrimarySkill"列的所有值/全值,而不管分页.
var texts = $("#listTableSupply").jqGrid('getCol', 'PrimarySkill');
Run Code Online (Sandbox Code Playgroud)
这段代码只给我一个"PrimarySkill"的子集,即给我当前页面中的值.
我想要全套价值.

我希望for循环打印出所有的文本框值,它不会这样思考,我该怎么办呢?
<script>
current = x;
for (var i = 0; i < current; i++) {
var num = document.calculator.textbox + i + .value;
document.write("<br>" + num);
}
</script>
<form name="calculator">
<input type="text" name="textbox1">
<input type="text" name="textbox2">
<input type="text" name="textbox3">
<input type="text" name="textbox4">
<input type="text" name="textbox5">
<!--...... infinite amount of textboxes-->
</form>
Run Code Online (Sandbox Code Playgroud) 为什么先工作而不是后者?*它只有一个小的区别,在后一种情况下,我使用速记来访问猫对象属性.我读到如果"属性的名称将是一个有效的变量名称 - 当它没有任何空格或符号并且不以数字字符开头时"它应该没有任何区别.
//this works
var cats = {Spot:true};
function addCat (name) { cats[name] = true; }
addCat("white");
console.log ("white" in cats); //true
console.log (cats.white); //true
Run Code Online (Sandbox Code Playgroud)
//this doesn't work
var cats = {Spot:true};
function addCat (name) { cats.name = true; }
addCat("white");
console.log ("white" in cats); //false
console.log (cats.white); //undefined
Run Code Online (Sandbox Code Playgroud) 给出以下obj:
var inputMapping = {
nonNestedItem: "someItem here",
sections: {
general: "Some general section information"
}
};
Run Code Online (Sandbox Code Playgroud)
我正在get通过传入字符串"nonNestedItem"或嵌套的情况为该数据编写函数"sections.general".我不得不使用一个eval,我想知道是否有更好的方法来做到这一点.
这是我到目前为止所做的,它可以正常工作.但改善!
function getNode(name) {
var n = name.split(".");
if (n.length === 1) {
n = name[0];
} else {
var isValid = true,
evalStr = 'inputMapping';
for (var i=0;i<n.length;i++) {
evalStr += '["'+ n[i] +'"]';
if (eval(evalStr) === undefined) {
isValid = false;
break;
}
}
if (isValid) {
// Do something like …Run Code Online (Sandbox Code Playgroud) 我定义了一个对象,其属性名称中带有连字符。
var data = {
"foo-bar": "value",
"this-that": "another value"
}
Run Code Online (Sandbox Code Playgroud)
现在我需要在JS中引用这个属性,但这两种方式都会导致语法错误。
console.log( data.foo-bar )
Run Code Online (Sandbox Code Playgroud)
和
console.log( data."foo-bar" )
Run Code Online (Sandbox Code Playgroud)
所以我的问题是。如何在 JS 中访问名称中包含连字符的属性?
免责声明:服务器端功能需要对属性进行连字符命名,我真的不想重写别人的整个脚本来接受这样的输入参数。是的,我知道目前的方法并不是最干净的方法。
我正在使用knockout数据绑定来呈现string => string字典的编辑器.但是,当字典键包含冒号等特殊字符时,我遇到了麻烦.有没有办法"逃避"属性名称或特殊字符,以便敲除将正确绑定?例如,以下内容未正确绑定:
<p data-bind="text: foo::bar" />
Run Code Online (Sandbox Code Playgroud)
我正在使用版本2.1.0的淘汰赛