Javascript 创建以 id 作为数组键的二维数组
Javascript create 2d Array with ids as array key
我需要一个包含用户 ID 作为数组键的数组结构,并且可以存储有关该用户的更多信息(二维数组)。在我的例子中,如果允许他执行数据库请求,则这些请求由请求 ID 和 true/false.
表示
每个用户可以有多个请求
例如:
用户 ID =14 并且请求 ID =22 and true and 45 and false
用户 ID =12 并且请求 ID =44 and false and 77 and false
它应该是这样的:
var users_rights={14:{22:true,45:false},12:{44:false,77:false}}
自从
以来我就在 js 语法上苦苦挣扎
var id[14] ;
创建一个包含 14 个元素的数组,该数组的其余部分为空,但我想要一个在第 14 个位置存储我所有请求信息的数组。
如果您先创建数组,然后分配值,您将只编辑第 n 个元素,例如
var id = [];
id[14] = 'xyz'
给出一个有 14 个未定义元素的数组,'xyz' 作为第 15 个元素。
这听起来好像您根本不需要数组,您想要一个具有其属性的对象值的对象(或者如果您使用的是 ES2015,Map
的 Map
s).
你的
var users_rights={14:{22:true,45:false},12:{44:false,77:false}}
(这是完全有效的语法,除了最后应该有一个 ;
之外)给你前者:你用用户 ID (14
) 索引它,然后索引使用请求 ID (22
and/or 45
) 进入您得到的对象中,这会为您提供一个布尔值。
你这样创建一个对象:
var users_rights = {};
你为密钥 14
添加一个 属性 像这样:
users_rights[14] = {};
您以相同的方式将属性添加到 that:
users_rights[14][22] = true;
users_rights[14][45] = false;
这些对象只是普通对象,不是数组。括号表示法与它们一起工作得很好(事实上,括号表示法与对象一起工作的事实使其与数组一起工作,因为 JavaScript aren't really arrays at all 中的标准数组)。
您可以将 [] 语法与您描述的常规 JS 对象一起使用。简单例子:
var ob = {10: {11:true}, 12: {13: false}};
console.log(ob[10]); //Displays the object {11:true}
console.log(ob[10][11]); //Displays true
我需要一个包含用户 ID 作为数组键的数组结构,并且可以存储有关该用户的更多信息(二维数组)。在我的例子中,如果允许他执行数据库请求,则这些请求由请求 ID 和 true/false.
表示每个用户可以有多个请求
例如:
用户 ID =14 并且请求 ID =22 and true and 45 and false
用户 ID =12 并且请求 ID =44 and false and 77 and false
它应该是这样的:
var users_rights={14:{22:true,45:false},12:{44:false,77:false}}
自从
以来我就在 js 语法上苦苦挣扎var id[14] ;
创建一个包含 14 个元素的数组,该数组的其余部分为空,但我想要一个在第 14 个位置存储我所有请求信息的数组。
如果您先创建数组,然后分配值,您将只编辑第 n 个元素,例如
var id = [];
id[14] = 'xyz'
给出一个有 14 个未定义元素的数组,'xyz' 作为第 15 个元素。
这听起来好像您根本不需要数组,您想要一个具有其属性的对象值的对象(或者如果您使用的是 ES2015,Map
的 Map
s).
你的
var users_rights={14:{22:true,45:false},12:{44:false,77:false}}
(这是完全有效的语法,除了最后应该有一个 ;
之外)给你前者:你用用户 ID (14
) 索引它,然后索引使用请求 ID (22
and/or 45
) 进入您得到的对象中,这会为您提供一个布尔值。
你这样创建一个对象:
var users_rights = {};
你为密钥 14
添加一个 属性 像这样:
users_rights[14] = {};
您以相同的方式将属性添加到 that:
users_rights[14][22] = true;
users_rights[14][45] = false;
这些对象只是普通对象,不是数组。括号表示法与它们一起工作得很好(事实上,括号表示法与对象一起工作的事实使其与数组一起工作,因为 JavaScript aren't really arrays at all 中的标准数组)。
您可以将 [] 语法与您描述的常规 JS 对象一起使用。简单例子:
var ob = {10: {11:true}, 12: {13: false}};
console.log(ob[10]); //Displays the object {11:true}
console.log(ob[10][11]); //Displays true