我正在学习JavaScript,并且遇到了以下结构:
var Test = (function () {
function func1() {
//do something.....
}
function func2() {
//do something.....
}
function func3() {
//do something.....
}
return {
func1: func1,
func2: func2,
func3: func3
};
})();
Run Code Online (Sandbox Code Playgroud)
我想知道返回块正在做什么.这是一个非常常用的JavaScript结构吗?请告诉我在哪里可以获得更多相关信息.
我已经定义了一个名为的JavaScript变量myData,它是new Array这样的:
var myData = new Array(['2013-01-22', 0], ['2013-01-29', 0], ['2013-02-05', 0],
['2013-02-12', 0], ['2013-02-19', 0], ['2013-02-26', 0],
['2013-03-05', 0], ['2013-03-12', 0], ['2013-03-19', 0],
['2013-03-26', 0], ['2013-04-02', 21], ['2013-04-09', 2]);
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以对数组中找到的数值求和(例如0 + 0 + 21 + 2 + 0等),并且可能有一个变量,结果是我可以在脚本标记之外使用,因为我有7种这样的阵列对应于一周中的每一天.我想基于此进行比较.如果可能的话,这是采取这种行动的最佳方法吗?
一些CSS样式需要在悬停时应用于元素,并且必须使用javascript/jquery直接应用CSS样式,而不是通过样式表或$(this).addClass('someStyle')因为我将DOM元素注入到另一个页面中.
我们可以使用通常的CSS样式
$('#some-content').css({
marginTop: '60px',
display: 'inline-block'
});
Run Code Online (Sandbox Code Playgroud)
我们应该如何为:hover事件添加CSS样式?
我们必须求助于:
$('#some-content').hover(
function(){ $(this).css('display', 'block') },
function(){ $(this).css('display', 'none') }
)
Run Code Online (Sandbox Code Playgroud) 如果我在定义之前可以在JS中使用变量,我一直想知道一段时间,如下所示:
var country = "USA";
switch (country) {
case "USA":
country = i;
case "blach":
//not finished yet
}
/*
put a whole
bunch more code here
*/
var i = 10;
Run Code Online (Sandbox Code Playgroud)
这有效吗?是允许的吗?如果是这样,它的技术术语是什么?
我试图找到一种简单的方法来循环(迭代)数组以找到序列中所有缺少的数字,该数组看起来有点像下面的那个.
var numArray = [0189459, 0189460, 0189461, 0189463, 0189465];
对于上面的数组我需要0189462并0189464注销.
更新:这是我从Soufiane的回答中使用的确切解决方案.
var numArray = [0189459, 0189460, 0189461, 0189463, 0189465];
var mia= [];
for(var i = 1; i < numArray.length; i++)
{
if(numArray[i] - numArray[i-1] != 1)
{
var x = numArray[i] - numArray[i-1];
var j = 1;
while (j<x)
{
mia.push(numArray[i-1]+j);
j++;
}
}
}
alert(mia) // returns [0189462, 0189464]
Run Code Online (Sandbox Code Playgroud)
UPDATE
这是使用.reduce的整洁版本
var numArray = [0189459, 0189460, 0189461, 0189463, 0189466];
var mia = numArray.reduce(function(acc, cur, …Run Code Online (Sandbox Code Playgroud)目的是;
如果禁用复选框,则不执行任何操作
如果启用并选中了复选框,请设置按钮的样式.
这是我到目前为止所得到的;
$(document).ready(function (e) {
$(".checkbox").live("click", function () {
if ($(this).hasAttribute('disabled')) {
return false;
}
var isAnyChecked;
$("input[type=checkbox]").each(function () {
var checkedValue = $(this).attr("checked");
if (checkedValue == "checked") {
isAnyChecked = true;
}
});
if (isAnyChecked) {
$("#<%= btnConfirm.ClientID %>").css("display", "block");
} else {
$("#<%= btnConfirm.ClientID %>").css("display", "none");
}
}); });
Run Code Online (Sandbox Code Playgroud)
我试过.is(':disabled'),.hasAttr(),.prop()和.attr().任何帮助将不胜感激.
JavaScript中有两个数组,它们都采用以下格式:
[{'drink':['alcohol', 'soft', 'hot']}, {'fruit':['apple', 'pear']}];
Run Code Online (Sandbox Code Playgroud)
我需要检测两个数组是否相等.如果它们以不同的顺序包含相同的元素,则它们被认为是相等的.我该怎么做?
是否有一个跨浏览器的解决方案来禁用输入类型='text'上的'tab'?
<input type='text' />
Run Code Online (Sandbox Code Playgroud)
按"标签"可移动到下一个"可聚焦"组件(例如按钮)
我想要'tab'做其他事情.例如,即使在谷歌搜索选项卡中,也只是用于自动完成建议的文本,而不是将您移动到下一个可聚焦组件...
谢谢
例如,我有一个文本框,我输入12000,我希望它在文本框中看起来像12,000我将如何做到这一点?我用html来做文本框
我有一个对象数组:
var myArray = [
{
"date" : "03/01/2017",
"value" : 2
}, {
"date" : "04/01/2017",
"value" : 6
}, {
"date" : "05/01/2017",
"value" : 4
}
];
Run Code Online (Sandbox Code Playgroud)
我需要累积值并使用更新的值保持相同的数组
结果看起来像这样
var myArray = [
{
"date" : "03/01/2017",
"value" : 2
}, {
"date" : "04/01/2017",
"value" : 8 //(2+6)
}, {
"date" : "05/01/2017",
"value" : 12 //(2+6+4)
}
];
Run Code Online (Sandbox Code Playgroud)
我知道这存在
[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array) {
return accumulator + currentValue;
});
Run Code Online (Sandbox Code Playgroud)
但我找不到对象返回对象的示例