我有一个js关联数组(或者有些人可能更愿意把它称为对象),比如说
var quesArr=new Array();
quesArr["q101"]="Your name?";
quesArr["q102"]="Your age?";
quesArr["q103"]="Your school?";
Run Code Online (Sandbox Code Playgroud)
是否有任何内置函数可以获得此数组的长度,或jQuery或其他库中的任何解决方案?目前quesArr.length会给出0,因为你们大多数人都必须知道.
请不要像在这个问题中提到的那样建议迭代整个数组/对象,因为我拥有的数组/对象非常大.
有什么方法可以继续吗?
我正在使用优秀的Underscore.js库.我有一个特定的任务,我可以使用JavaScript或jQuery做得很好但是想知道在Underscore中是否有某种抽象可以让我错过了.
基本上我有一个像这样的对象 -
var some_object_array = [{id: "a", val: 55}, {id: "b", val: 1}, {id: "c", val: 45}];
Run Code Online (Sandbox Code Playgroud)
我想把它转换成 -
var some_map = {"a": {id: "a", val: 55}, "b": {id: "b", val: 1}, "c": {id: "c", val: 45}};
Run Code Online (Sandbox Code Playgroud)
我知道我可以用_.groupBy(some_object_array, "id").但这会返回如此的地图 -
var some_grouped_map = {"a": [{id: "a", val: 55}], "b": [{id: "b", val: 1}], "c": [{id: "c", val: 45}]};
Run Code Online (Sandbox Code Playgroud)
请注意,这会做广告宣传的内容.但是我希望自己some_map不用迭代对象.
任何帮助赞赏.
我有一个javascript对象,我需要展平成一个字符串,以便我可以作为查询字符串传递,我该怎么做?即:
{ cost: 12345, insertBy: 'testUser' } 会成为 cost=12345&insertBy=testUser
我不能使用jQuery AJAX调用这个调用,我知道我们可以使用它并传递对象,data但不是在这种情况下.然而,使用jQuery来展平对象是可以的.
谢谢.
可以Object用作对象的属性名称吗?
这个问题是间接提出的一个stackoverflow问题.答案似乎是@Squeegy的普遍共识:
你可以使用这些单词,但只能作为字符串而不是速记属性 -有助于提供保留字列表的链接HTMLElement很酷,而obj["word"]不是
虽然我认为@Squeeky在这个领域可能比我更有知识,但在某些情况下使用保留词可能是个坏主意,我认为他的结论基于两点是错误的:
使用它们作为"速记"属性来测试保留字
在HTMLFormElement使得它不可能不以"速记"使用保留字
首先,使用保留字列表,每个都作为属性添加到obj.word和obj["word"],并作为obj.word和<input name='typeof' value='scalar' />,然后作为form.typeof和检索Object.在所有63个案例中,所有8个测试都正常工作.
其次,HTMLFormElement需要这样做,因为它使用简写表示法在其元素中检索.如果HTMLElement是表单的元素,则obj["word"]=="标量".
根据我的经验,保留字通常是数据(例如,名为"私人"的列),而不是程序造成的.因此,它们会污染JSON对象,并从那里污染INPUT,然后从那里污染HTMLFormElement.简单地说,没有大量(不需要的)工作,就不可能保留保留的单词不被强制用于速记.
在我看来这些真正的问题:
需要注意不要与现有财产发生冲突,而不是保留字
(很多,如果不是全部)变量不能保留字
使用保留字作为属性可能(但不一定)令人困惑
这个结论是否正确,保留字作为属性名称,并以字符串或简写形式访问它们就好了 - 只要对情况应用一点常识?
javascript json properties reserved-words javascript-objects
似乎有很多方法来设置JavaScript应用程序,因此对于哪一个是正确的还是最好的而言令人困惑.以下技术或更好的方法有什么不同吗?
MyNamespace.MyClass = {
someProperty: 5,
anotherProperty: false,
init: function () {
//do initialization
},
someFunction: function () {
//do something
}
};
$(function () {
MyNamespace.MyClass.init();
});
Run Code Online (Sandbox Code Playgroud)
其他方式:
MyNamespace.MyClass = (function () {
var someProperty = 5;
var anotherProperty = false;
var init = function () {
//do something
};
var someFunction = function () {
//do something
};
return {
someProperty: someProperty
anotherProperty: anotherProperty
init: init
someFunction: someFunction
};
}());
MyNamespace.MyClass.init();
Run Code Online (Sandbox Code Playgroud)
第一种技术感觉更像是一门课.如果这有所不同,我来自服务器端背景.第二种技术似乎更冗余,有点尴尬,但我看到这也使用了很多.有人可以帮助解决一些问题并建议前进的最佳方式吗?我想创建一个有很多类相互交流的应用程序.
javascript oop javascript-framework javascript-objects javascript-namespaces
我最近在我的网站上乱搞jQuery,而且我对Javascript的了解相当有限.我开始喜欢jQuery能够将变量传递给花括号内的jQuery函数,如下所示:
$(somediv).animate({thisisone: 1, thisistwo: 2}, thisisavar);
Run Code Online (Sandbox Code Playgroud)
我想知道的是我如何编写一个Javascript函数,我可以将项目传递到花括号内?我知道你可以编写这样的函数:
function someName(var1, var2, var3...) {
}
Run Code Online (Sandbox Code Playgroud)
但这不支持括号?我也知道你不能添加任何参数并执行此操作:
function accident() {
for( var i = 0; i < arguments.length; i++ ) {
alert("This accident was caused by " + arguments[i]);
}
}
accident("me","a car","alcohol","a tree that had no right to be in the path of my driving");
Run Code Online (Sandbox Code Playgroud)
但是我还想传递外部变量而不仅仅是整行字符串,如果这有意义的话?
基本上,我想要一个可以传递变量的函数,如下所示:
function myFunction(neededcodehere){
//Some code here...
}
myFunction (var1, {"Option 1", "Option 2", "Option 3"}, anothervar);
Run Code Online (Sandbox Code Playgroud) 如果我textarea喜欢var txtarea = $('textarea'),我如何使用JavaScript属性设置值value,而不是jQuery属性val()?
我想我需要转换txtarea为JavaScript对象,但我该怎么做?
我在Javascript中有一个简单的对象(或哈希):
var settings = {
link: 'http://example.com',
photo: 'http://photos.com/me.jpg'
};
Run Code Online (Sandbox Code Playgroud)
我需要它的副本.是否有一种settings.clone()类型方法会给我另一个具有相同属性的对象?我正在使用jQuery,很高兴使用jQuery实用程序方法(如果存在).
声明JavaScript数组时"{}"和"[]"之间有什么区别?通常我会声明
var a=[];
Run Code Online (Sandbox Code Playgroud)
声明数组的含义是什么? var a={}
我想从数组列表中创建对象.我有一个动态的数组,假设看起来像这样:
var dynamicArray = ["2007", "2008", "2009", "2010"];
和一些javascript es6我想做一个像这样的对象:
const obj = {
2007: {
x: width / 5,
y: height / 2
},
2008: {
x: (2 / 5) * width,
y: height / 2
},
2009: {
x: (3 / 5) * width,
y: height / 2
},
2010: {
x: (4 / 5) * width,
y: height / 2
}
}
Run Code Online (Sandbox Code Playgroud)
不要担心内部对象,但只是想要这样的make结构:
obj = {
2007: ...,
2008: ...,
...
}
Run Code Online (Sandbox Code Playgroud)
请帮忙,谢谢.
javascript ×9
arrays ×3
jquery ×3
object ×2
clone ×1
copy ×1
declaration ×1
ecmascript-6 ×1
flatten ×1
function ×1
json ×1
oop ×1
properties ×1