为什么在下面3行代码中出现javascript错误?

为什么在下面3行代码中出现javascript错误?,javascript,jquery,Javascript,Jquery,我在上面得到的错误是: var pagebacklinks = new Array(); pagebacklinks[jQuery('#somevalue').val()]["something"] = 33; 尝试先将jQuery('#somevalue').val()放入变量,然后在数组中使用该变量。尝试 pagebacklinks[jQuery("#somevalue").val()] is undefined //alert(jQuery('#somevalue').val(

我在上面得到的错误是:

var pagebacklinks = new Array();    
pagebacklinks[jQuery('#somevalue').val()]["something"] = 33; 
尝试先将
jQuery('#somevalue').val()
放入变量,然后在数组中使用该变量。

尝试

pagebacklinks[jQuery("#somevalue").val()] is undefined
//alert(jQuery('#somevalue').val());  This however shows the correct value

这是因为
pagebacklinks[jQuery('#somevalue').val()]
不是数组

这应该行得通

var $val=jQuery('#somevalue').val();

var pagebacklinks = new Array();

pagebacklinks[$val]["something"] = 33;
所以正确的方法应该是

var pagebacklinks = new Array();    
pagebacklinks[1] = new Array();

pagebacklinks[1][2] = 'sadfasdf';

console.log(pagebacklinks[1][2]);

JavaScript没有关联数组。您可以在此处使用对象

pagebacklinks[jQuery("#somevalue").val()] = new Array();

pagebacklinks[jQuery('#somevalue').val()]["something"] = 33; 

我会这样做:

var pagebacklinks = [],
    index = jQuery('#somevalue').val();

pagebacklinks[index] = {'something': 33};

我同意。如果这没有帮助,尝试硬编码该值,看看它是否有效。+1表示正确性。在旁注中,第一级数组中的项可以是另一个数组,也可以只是一个对象。
var pagebacklinks = []; // [] is a shorter version than new Array()

var vKeyLevelOne = jQuery('#somevalue').val(); // May be an int, or a string - a "variant"

if (typeof pagebacklinks[vKeyLevelOne]=='undefined') pagebacklinks[vKeyLevelOne] = [];

pagebacklinks[vKeyLevelOne]["something"] = 33;