为什么以下工作?
<something>.stop().animate(
{ 'top' : 10 }, 10
);
Run Code Online (Sandbox Code Playgroud)
虽然这不起作用:
var thetop = 'top';
<something>.stop().animate(
{ thetop : 10 }, 10
);
Run Code Online (Sandbox Code Playgroud)
为了使它更清晰:目前我无法将CSS属性作为变量传递给animate函数.
我想创建一个有条件添加成员的对象.简单的方法是:
var a = {};
if (someCondition)
a.b = 5;
Run Code Online (Sandbox Code Playgroud)
现在,我想写一个更惯用的代码.我在尝试:
a = {
b: (someCondition? 5 : undefined)
};
Run Code Online (Sandbox Code Playgroud)
但现在,b是a其价值的成员undefined.这不是理想的结果.
有方便的解决方案吗?
更新
我寻求一个可以处理几个成员的一般情况的解决方案.
a = {
b: (conditionB? 5 : undefined),
c: (conditionC? 5 : undefined),
d: (conditionD? 5 : undefined),
e: (conditionE? 5 : undefined),
f: (conditionF? 5 : undefined),
g: (conditionG? 5 : undefined),
};
Run Code Online (Sandbox Code Playgroud) var test = "test123"
var test123 ={
"key" + test: 123
}
Run Code Online (Sandbox Code Playgroud)
此代码不起作用."关键"+测试有什么问题?
所以我在John Resig的JavaScript Micro-Templating上看过这篇文章,我需要一个像这样的微模板引擎.
但他在帖子中表示,他将在他的"密友之书"中保留一个更精致的版本,并提到他希望看到它的演变.
所以我想知道,John Resig的微型模板引擎是否有更稳定/更先进的版本?如果是这样,我怎样才能获得它?这本JavaScript书籍在我的国家/地区不可用.
我正在使用这段代码(如下所示)尝试填充Parametersfor循环中命名的对象文字 .我需要将该key:value对与循环迭代i变量一起分配,如下所示:{key_1:chunks[1],key_2:chunks[2]}.但是,我的代码无效.这'key_'+i并没有反映在文字中.
显然,我在这里缺少一些东西.有人能告诉我它是什么吗?...谢谢.
var Parameters=[];
var len = chunks.length;
for (var i = 0; i < len; i++) {
var key='key_'+i
obj= { key : chunks[i]};
Parameters.push(obj)
}
Run Code Online (Sandbox Code Playgroud) 我猜一个愚蠢的问题,我们如何将 javascript 中的 String 对象转换为 String 原语?
问题是我有一个映射,其中键是字符串文字,如果我将字符串对象传递给它,它不会给出任何结果。有什么办法可以将该字符串对象转换为原始对象以从地图中获取结果?
我的代码中有一个构造函数对象,它是:
function Employee(){
this.name = names[Math.floor(Math.random() * names.length)];
this.age=1;
this.level=1;
this.production=400;
this.totalprod=0;
}
Run Code Online (Sandbox Code Playgroud)
所以当我创建一个新员工时,我只是说:
var employee1 = new Employee();
Run Code Online (Sandbox Code Playgroud)
这样我就可以操作对象的这个实例了。现在,我希望使用变量名称动态创建此对象:employee1,employee2,employee3等等.. 有没有办法实现这一点还是不可能?
我的另一个问题是,说我想同时更改age所有实例的 ,有没有办法做到这一点?提前致谢,如果问题很愚蠢,我很抱歉,我正在学习!
编辑:这与另一个问题不同,因为我使用的是构造函数对象,而不是文字对象,除此之外,我问另一个问题,即如何同时更改所有实例的属性,谢谢!
我想这样做:
var KEYS = {} ;
KEYS.PHONE_TYPE = 'phone-type';
KEYS.AGENT_TYPE = 'agent-type';
var myAppConfig = {
...
iconMap : {
KEYS.PHONE_TYPE : 'icon-phone',
KEYS.AGENT_TYPE : 'icon-headphones'
};
...
};
Run Code Online (Sandbox Code Playgroud)
但它失败了,并留言: Expected ':' and instead saw '.'.
如何使用间接(非文字)键名初始化对象?
要清楚,我想要的结果是:
{
'phone-type' : 'icon-phone',
'agent-type' : 'icon-headphones'
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种能够动态创建对象键(措辞正确吗?)的解决方案.
任意的例子,但这适用于chrome和firefox
var weeks = {}
for(var i = 0; i < 5; i++){
$.extend(weeks, {["week" + i] : (i * 2)}
}
//weeks = {"week0":0,"week1":2,"week2":4,"week3":6,"week4":8}
Run Code Online (Sandbox Code Playgroud)
或者替代任意的例子
var object = {
["a" + 50]: "value"
}
Run Code Online (Sandbox Code Playgroud)
问题似乎根植于[]运营商,但我不明白这个问题是如何或为何只在IE中发生.我没有在以前的版本中测试IE11,但我认为问题会在那里持续存在.
由于问题似乎与[]操作员本身有关,在变量中创建我的键然后将该变量推入我的[]将无法解决问题,所以我似乎都没有想法和谷歌的关键字.
那么有没有办法在IE中动态创建对象键?
我仍在学习 JavaScript,所以如果这看起来是一个补救性问题,我提前道歉。
我以数组的形式从 API 调用接收数据,如下所示:
arr = ['topic1',497,'topic2',591,'topic3',17,'topic4',980]
Run Code Online (Sandbox Code Playgroud)
尽管从该数组中看不出来,但每个主题字符串后面的数字是前一个主题的计数。
我想在 React 应用程序中使用这些数据,即将其映射到表或其他数据结构。但当这些值像这样匿名时,这就非常困难了。
所以,我想获取这个数组并将其转换为具有键/值对的对象。因此,在进行某种循环/过滤器/映射/等工作之后。在数组上,我需要这样结束:
newArr = [
{topic: 'topic1', count: 497},
{topic: 'topic2', count: 591},
{topic: 'topic3', count: 17},
{topic: 'topic4', count: 980},
]
Run Code Online (Sandbox Code Playgroud)
我尝试过很多技术,包括使用字典、地图、地图、过滤器、forEach、for ... in,以及比我现在记得的更多的技术。是的,我搜索了很多网页和论坛。问题是,我的问题包括 JavaScript 的一些基本构建块,因此我找到的答案对于我的问题来说不够具体。
我确实成功过滤掉了数组中的偶数和奇数元素,如下所示:
let x = arr.filter((element, index) => {
return index % 2 === 0; filter elements located at an even index
});
let y = arr.filter((element, index) => {
return index % 2 === 1; filter elements located at an odd index …Run Code Online (Sandbox Code Playgroud) javascript ×10
jquery ×2
object ×2
arrays ×1
instance ×1
properties ×1
reactjs ×1
syntax ×1
variables ×1