我正在用JavaScript构建一些对象并将这些对象推送到一个数组中,我将存储我想要在变量中使用的键然后创建我的对象,如下所示:
var key = "happyCount";
myArray.push( { key : someValueArray } );
Run Code Online (Sandbox Code Playgroud)
但是当我尝试检查每个对象的对象数组时,键"key"而不是变量键的值.有没有办法从变量设置键的值?
小提琴更好的解释:http: //jsfiddle.net/Fr6eY/3/
我使用jQuery从DOM中提取项目,并希望使用idDOM元素在对象上设置属性.
const obj = {}
jQuery(itemsFromDom).each(function() {
const element = jQuery(this)
const name = element.attr('id')
const value = element.attr('value')
// Here is the problem
obj.name = value
})
Run Code Online (Sandbox Code Playgroud)
如果itemsFromDom包含一个带有id"myId" 的元素,我想要obj一个名为"myId"的属性.以上给了我name.
如何使用JavaScript使用变量命名对象的属性?
编辑:这是重复,请看这里
在设置状态时,我找不到任何使用动态密钥名称的示例.这就是我想要做的:
inputChangeHandler : function (event) {
this.setState( { event.target.id : event.target.value } );
},
Run Code Online (Sandbox Code Playgroud)
其中event.target.id用作要更新的状态键.这在React中不可能吗?
如何使用变量的值a作为查找属性的键?我希望能够说:b["whatever"]并且这个回报20:
var a = "whatever";
var b = {a : 20}; // Want this to assign b.whatever
alert(b["whatever"]); // so that this shows 20, not `undefined`
Run Code Online (Sandbox Code Playgroud)
我在询问是否有可能在创建过程中b,让它包含"whatever":20而不是a:20变量中的"无论什么".也许eval可以使用?
我是JavaScript的新手,但我熟悉Python.我试图弄清楚Python中的Dictionary和JS中的Object之间的区别.
据我所知,Python中字典中的键需要提前定义,但在JS中的对象中可能未定义.但是,我对这些案件感到困惑:
var n = 'name';
var n2 = n;
var person = {n: 'mike'};
person.n # 'mike'
person['n'] # 'mike'
person[n2] # undefined
person.n2 # undefined
person['name'] # undefined
person.'name' # undefined
Run Code Online (Sandbox Code Playgroud)
我很困惑的是,为什么这三个变量n,n2并且name是不相等的,因为与在Python比较:
n = 'name'
n2 = n
person = {n:'mike'}
person[n] # 'mike'
person[n2] # 'mike'
person['name'] # 'mike'
Run Code Online (Sandbox Code Playgroud)
我想这可能是由于这样的事实:在Python,n并n2都指向唯一的字符串对象'name',所以它们是相同的.但有人可以向我解释JS背后的机制吗?
是否可以像这样在 MongoDB 的查询中使用变量?
var FOO="123";
var BOO="323";
user.findOneAndUpdate({_id: userID},{$set:{FOO:BOO}}
Run Code Online (Sandbox Code Playgroud)
BOO - 值,工作正常并且正在分配,而 FOO - 关键不是。
我有一个对象,我想用动态命名的键初始化.我知道我可以在这样的代码中做到这一点:
obj = {};
prefix = "blah";
i = 0;
obj[prefix + i] = "whatever";
console.log( obj.blah0 );
Run Code Online (Sandbox Code Playgroud)
例如,从这里开始:如何创建要添加到JavaScript对象变量的动态密钥
但这可以在初始化器中完成吗?
obj = { [prefix+i]: "whatever" };
Run Code Online (Sandbox Code Playgroud)
我知道这不起作用.我尝试过这个.但有没有类似的方法可行?
这里我们必须编写三个函数来更改表单所有输入字段的状态,如果我们有更多字段,例如电话和地址,我们必须再编写两个函数来更改这些字段的状态,我想问是否存在有什么方法我们可以只编写一个通用函数来更改此表单的任何字段的状态,而不是为每个表单字段编写单独的函数?
class SignUpForm extends React.Component {
constructor() {
super();
this.state = {
name: '',
email: '',
password: '',
};
}
handleNameChange = (evt) => {
this.setState({name: evt.target.value});
}
handleEmailChange = (evt) => {
this.setState({email: evt.target.value});
}
handlePasswordChange = (evt) => {
this.setState({password: evt.target.value});
}
render(){
return(
<form onSubmit={this.handleSubmit}>
<input
type="text"
placeholder="Enter Name"
value={this.state.name}
onChange={this.handleNameChange}
/>
<input
type="text"
placeholder="Enter email"
value={this.state.email}
onChange={this.handleEmailChange}
/>
<input
type="password"
placeholder="Enter password"
value={this.state.password}
onChange={this.handlePasswordChange}
/>
<button disabled={isDisabled}>Sign up</button>
</form>
)
}
}
Run Code Online (Sandbox Code Playgroud) 我要解决的问题是非常确定地创建了一个动态对象初始化程序。因为我不知道数字的结果,所以不要在对象中对数字进行硬编码。一个代码示例将演示该示例。
香港专业教育学院试图创建一个简单的for循环,以插入一个数字以稍后在控制台中显示,但到目前为止没有成功。
for(var counter =0; counter <3; counter++){
var myObject = {counter : "Text"};
console.log(myObject)
}
Run Code Online (Sandbox Code Playgroud)
但是输出将显示实际的变量名称,而不是其包含的数字。输出必须完全类似于以下示例:{0:“ Example”}。
Chrome在控制台窗口中的输出:{counter:“ Text”} {counter:“ Text”} {counter:“ Text”}
javascript ×8
object ×2
reactjs ×2
dictionary ×1
for-loop ×1
jquery ×1
loops ×1
mongodb ×1
python ×1
syntax ×1