相关疑难解决方法(0)

816
推荐指数
8
解决办法
77万
查看次数

如何在循环中创建对象文字数组?

我需要创建一个对象文字数组,如下所示:

var myColumnDefs = [
    {key:"label", sortable:true, resizeable:true},
    {key:"notes", sortable:true,resizeable:true},......
Run Code Online (Sandbox Code Playgroud)

在这样的循环中:

for (var i = 0; i < oFullResponse.results.length; i++) {
    console.log(oFullResponse.results[i].label);
}
Run Code Online (Sandbox Code Playgroud)

值的值key应该results[i].label在数组的每个元素中.

javascript arrays object-literal

216
推荐指数
5
解决办法
55万
查看次数

`new Object()`和object literal notation有什么区别?

这个基于构造函数的语法创建对象有什么区别:

person = new Object()
Run Code Online (Sandbox Code Playgroud)

...和这个文字语法:

person = {
    property1 : "Hello"
};
Run Code Online (Sandbox Code Playgroud)

虽然JSLint更喜欢使用对象文字表示法,但它们似乎都做同样的事情.

哪一个更好,为什么?

javascript jslint object

190
推荐指数
8
解决办法
13万
查看次数

使用变量"name"不适用于JS对象

可以在这个小片段中看到该行为(将其作为全局脚本执行):

var name = {};
name.FirstName = 'Tom';
alert(name.FirstName);
Run Code Online (Sandbox Code Playgroud)

undefinedChrome中的警报产生但可以在IE和Firefox中使用.当我这样做时,我也得到一个奇怪的价值

alert(name);
Run Code Online (Sandbox Code Playgroud)

javascript object window-object

26
推荐指数
3
解决办法
2230
查看次数

Javascript:{} vs new Object()性能

我想理解为什么两者都做同样的事情时性能上的差异?

在此输入图像描述

基准

javascript performance

25
推荐指数
1
解决办法
1万
查看次数

为什么使用{}代替新的Object()并使用[]而不是new Array()和true/false而不是new Boolean()?

很多人说你应该避免使用新的Object,新的Array()而是使用{}.[]和真/假.

使用文字结构获取Object或Array的新实例而不是使用new的好处是什么?我知道克罗克福德不喜欢新的,但这是主要论点吗?

javascript

15
推荐指数
1
解决办法
2317
查看次数

写得更好:var arr = []; 比var arr = new Array();?

写作更好吗?

var arr=[]; then var arr=new Array(); 
var obj={}; then var obj=new Object();
Run Code Online (Sandbox Code Playgroud)

如果是这样,为什么?

我阅读了关于这个想法的幻灯片第36页,但没有给出解释或示例为什么它更好.

javascript

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

Javascript变量未定义

<html>
<head>
    <title>Array of images</title>
    <script type="text/javascript">
        var myPics = new Array[3];
        myPics[0] = "./img/blue.png";
        myPics[1] = "./img/red.png";
        myPics[2] = "./img/yellow.png";
        var counter = 0;

        function preImg(){
        alert(counter);
            if(counter == 0)
                counter = 4;

            counter --;
        alert(counter);
            document.getElementById("coloredImg").src = myPics[counter];
        }

        function nextImg(){
            if(counter == 3)
                counter = -1;

            counter ++;

            document.getElementById("coloredImg").src = myPics[counter];
        }
    </script>
</head>
<body>
    <img src="./img/blue.png" id="coloredImg" alt="Image not found"/>
    <input type="button" onclick="preImg()" value="Previous"/>
    <input type="button" onclick="nextImg()" value="Next"/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我的计数器变量在函数内部未定义.例如,当我调用函数preImg时,它会使用undefined警告我(当它应该只是0时),第二个警告显示NaN时它应该是3.为什么我的函数不识别我的"var counter"它是全局的不是吗?你认为变量mypics会发生同样的情况吗?谢谢!

html javascript variables

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

这三种创建阵列的方法有什么区别吗?

这三种创建阵列的方法有什么区别吗?如果没有,为什么前两种方式存在,如果它们只是更多的代码?

1:

var myCars=new Array(); 
myCars[0]="Saab";       
myCars[1]="Volvo";
myCars[2]="BMW";
Run Code Online (Sandbox Code Playgroud)

2:

var myCars=new Array("Saab","Volvo","BMW");
Run Code Online (Sandbox Code Playgroud)

3:

var myCars=["Saab","Volvo","BMW"];
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

无效的字符串长度/分配大小重载JavaScript

我有一系列复选框,检查它们是否已经过检查,如果有,请在数组中添加一个字符串.然后我循环遍历字符串数组,并将数组中的字符串添加到以逗号分隔的新字符串中.不幸的是,这总是会导致错误.在Chrome中,控制台显示"无效字符串长度".在Firefox中,错误显示为"分配大小溢出".

JavaScript的:

// Compile List of Interests
interests = new Array();
if ( $("input[name=interestRoofing]").is(':checked') == true ) interests.push("Roofing");
if ( $("input[name=interestSiding]").is(':checked') == true ) interests.push("Siding");
if ( $("input[name=interestGutters]").is(':checked') == true ) interests.push("Gutters");
if ( $("input[name=interestWindows]").is(':checked') == true ) interests.push("Windows");
if ( $("input[name=interestPaint]").is(':checked') == true ) interests.push("Exterior Paint");
interestsString = "";
for ( i = 0; i < interests.length; i++ ) { // "Invalid String Length" in Chrome on This Line
    interestsString = interestsString + interests[i]; // "Allocation Size Overload" in …
Run Code Online (Sandbox Code Playgroud)

javascript arrays string jquery

2
推荐指数
1
解决办法
6561
查看次数

为什么这个javascript数组未定义?

我有以下代码,它试图生成一个随机数的二维数组:

var block_size = 32;
var can_width = can.width;
var color_depth = 12;
var passes = can_width / block_size;
var map_store = new Array(passes);

for(i=0;i<passes;i++) {
  for(j=0;j<passes;j++) {
    map_store[i] = new Array(passes);
    color = Math.random() * color_depth;
    map_store[i][j] = Math.round(color);
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我把console.log语句放在循环中,这似乎工作正常,但是如果我尝试访问map_store循环外的数组.它的所有元素都是未定义的.为什么是这样?

javascript

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