相关疑难解决方法(0)

如何使用对象作为成员循环一个普通的JavaScript对象?

如何遍历JavaScript对象中的所有成员,包括作为对象的值.

例如,我怎么能循环这个(访问每个的"your_name"和"your_message")?

var validation_messages = {
    "key_1": {
        "your_name": "jimmy",
        "your_msg": "hello world"
    },
    "key_2": {
        "your_name": "billy",
        "your_msg": "foo equals bar"
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript

1521
推荐指数
17
解决办法
158万
查看次数

"while(true)"循环是如此糟糕吗?

我已经用Java编程了好几年了,但我刚刚回到学校获得正式学位.我很惊讶地发现,在我上一次任务中,我使用了如下所示的循环而丢失了分数.

do{
     //get some input.
     //if the input meets my conditions, break;
     //Otherwise ask again.
} while(true)
Run Code Online (Sandbox Code Playgroud)

现在我的测试我只是扫描一些控制台输入,但我被告知这种循环是不鼓励的,因为使用break类似于goto,我们只是不这样做.

我完全理解goto和它的Java堂兄的陷阱break:label,我很有意识不使用它们.我也意识到一个更完整的程序会提供一些其他的逃避手段,例如刚刚结束程序,但这不是我教授引用的原因,所以......

怎么了do-while(true)

java while-loop do-while

215
推荐指数
9
解决办法
16万
查看次数

JSLint:意外的'for'.出乎意料的'var'

我在StackOverflow中搜索并尝试其他建议.不幸的是,答案对我不起作用.他们建议使用'foreach'代替'for',但我怎么能......如果我想迭代50次?<

好吧,我只是粘贴代码,让我们看看一些好人可以帮助我.

JSLint无法完成.

出乎意料的'为'.for(var i = 1; i <= 50; i + = 1){
line 6 column 8

意外的'var'.for(var i = 1; i <= 50; i + = 1){
line 6 column 13

    "use strict";

    var campo = [];
    var ronda = 0;

    // Llenamos el campo de 50 humanos/maquinas/extraterrestres = 150 jugadores
    for (var i=1;i<=50;i+=1){
        campo.push(new Human("h"+i));
        campo.push(new Machine("m"+i));
        campo.push(new Alien("e"+i));
    }

    // Array.prototype.suffle para barajar el Array
    Array.prototype.shuffle = function() {
        var input = this;

        for (var …
Run Code Online (Sandbox Code Playgroud)

javascript arrays for-loop jslint

8
推荐指数
2
解决办法
6864
查看次数

为什么在audio标签中使用源标签可以防止loadeddata事件被触发?

为了更好地访问,我们需要第二组备用播放/暂停控制,并且(在用户Kento Nishi的帮助下)我们成功地从DEMO A(仅有1个音频播放控制)移动到DEMO B(具有重复的音频播放控制).

问题1在DEMO B中打破了持续时间(最右边的数字).

问题2每个网页都有自己的文件夹.有些页面已准备好语音音频文件,*.mp3但有些页面没有.如果在页面自己的文件中没有speak.mp3(所有页面的相同文件名),是否可以隐藏所有音频控件html?总结如果:如果当前网页文件夹中的服务器上存在*.mp3文件,<source src="*.mp3" type="audio/mpeg">则显示音频控件的html.否则通过CSS隐藏音频html控件.

旧版DEMO A,只有一组控件:

var play = document.getElementsByTagName('play')[0];
var pause = document.getElementsByTagName('pause')[0];
Run Code Online (Sandbox Code Playgroud)

新的DEMO B,具有多组控件:

document.getElementsByTagName("playpause")[0].addEventListener("click", playpause);
document.getElementsByTagName("playpause")[1].addEventListener("click", playpause);
Run Code Online (Sandbox Code Playgroud)

这里JS Lint显示错误:意外for和意外var,但我怀疑这些音频持续时间中断的原因.

BEAUTY关于演示A和B的好处是音频文件不会在用户点击播放之前(并且仅在其之后)加载.这样就不会浪费任何带宽,直到用户点击播放!此功能非常重要,应保持完整,以及布局方面的重复控件集,并且html部分应保持尽可能完整.

BOUNTY:200新演示工作除了持续时间/音频长度被打破,当音频文件不存在时,显示控件.赏金是对在工作的jsfiddle演示中解决问题(或两者)的一点感谢.感谢您的帮助.

javascript audio html5 mp3 jslint

6
推荐指数
1
解决办法
165
查看次数

对对象(而不是数组)使用 for 循环的替代方法是什么?为什么?

这不是JSlint 的重复:意外的 'for' ,请不要将其标记为:

没有用于循环对象或对象文字的本机 for 循环(我知道有一个.forEachfor 数组)。

为什么 jslint 建议不要使用 for 循环?你如何遍历一个对象不具有Array.forEach()Array.some()或类似的?

但更大更重要的问题是,为什么提出这个建议?

显然我可以使用Object.keys()然后,forEach()但这似乎是一种更长的方法。

源代码

// on a truthy match returns true and breaks from loop
Pub.someKey = function (obj, func, con) {
    var key;
    if (!Pub.isFunction(func)) {
        return false;
    }
    for (key in obj) {
        if (obj.hasOwnProperty(key)) {
            if (func.call(con, obj[key], key, obj)) {
                return true;
            }
        }
    }
    return false;
};
Pub.forSomeKey = Pub.someKey;
Run Code Online (Sandbox Code Playgroud)

javascript jslint

5
推荐指数
1
解决办法
4362
查看次数

JSLint在语句位置的'意外表达'是什么意思.'?

我在JavaScript中有一个for循环,我已经通过JSLint运行了几次.在我收到的过去the unexpected++ error,我决定重构以使我的代码更具可读性.大约一个月后,JSLint推出了更新,现在正在显示警告......

语句位置中出现意外表达式"i".for(i; i <scope.formData.tabs.length; i = i + 1){

//See JSLint.com for why I pulled out i initialization and i = i+1 instead of i++
//and http://stackoverflow.com/questions/3000276/the-unexpected-error-in-jslint
var i = 0;
for (i; i < scope.formData.tabs.length; i += 1) {
    scope.formData.tabs[i].show = false; // hide all the other tabs 

    if (scope.formData.tabs[i].title === title) {
        scope.formData.tabs[i].show = true; // show the new tab 
    }
}
Run Code Online (Sandbox Code Playgroud)

恢复var i = 0并且i++没有改进警告,JSLint只是停止处理.

javascript jslint

3
推荐指数
1
解决办法
4812
查看次数

标签 统计

javascript ×5

jslint ×4

arrays ×1

audio ×1

do-while ×1

for-loop ×1

html5 ×1

java ×1

mp3 ×1

while-loop ×1