gpt4 book ai didi

Javascript:访问对象内部的数组

转载 作者:行者123 更新时间:2023-11-30 08:55:24 25 4
gpt4 key购买 nike

我在对象 elementMatrix 中有一个数组 cornerId。此后,我想创建 elemArray,它是对象 elementMatrix 的数组。但是我无法访问 cornerId 的值。

function elementMatrix() {
var cornerId=new Array();
}

var elemArray=new Array();
elemArray[0]=new elementMatrix();
elemArray[0].cornerId[0]="z"; //if I put elemArray[0].cornerId="z"; then it works for the first element - but then how do I put second element???
elemArray[0].cornerId[1]="a";
alert(elemArray[0].cornerId[0]); // shows undefined
alert(elemArray[0].cornerId[1]); //again undefined
....
Add other elemArray values
....

我想为数组 cornerId 的第 n 个位置分配值和访问值,它是 elemArray 的一部分,elemArray 是一个对象数组 elementMatrix 。谁能告诉我访问 cornerId 值的正确方法???

编辑:

澄清一下,我想自由地在第 n 个位置添加 cornerId(覆盖现有值)而不是推送它。此外,我最初并没有问过这个问题,但如果有一种方法可以从 cornerId 中删除第 n 个位置,那就太好了。

最佳答案

用这个定义你的 Angular 落,插入阵列......像这样

function elementMatrix() {
this.cornerId = [];
};
var elemArray = [];
var newMatrix =new elementMatrix();
newMatrix.cornerId.push('z');
newMatrix.cornerId.push('a');
elemArray.push(newMatrix);

alert(elemArray[0].cornerId[0]);
alert(elemArray[0].cornerId[1]);

或者你可以像这样将你的 cornerid 设为私有(private)并返回公共(public)方法(add 是流利的)

function elementMatrix() {
var cornerId = [];

return {
addCornerId: function(id) {
cornerId.push(id);
return this;
},

getCornerId: function(pos) {
if(cornerId.length >= pos) {
return cornerId[pos];
}

return null;
}
};
};
var elemArray = [];
var newMatrix =new elementMatrix();
newMatrix
.addCornerId('z')
.addCornerId('a');
elemArray.push(newMatrix);

alert(elemArray[0].getCornerId(0));
alert(elemArray[0].getCornerId(1));

编辑,如果你想要一个键值对,使用一个对象而不是像这样的数组

function elementMatrix() {
var cornerId = {};
var nextKey = 0;

return {
addCornerId: function(id, key) {
if(!key && key !== 0) {
key = nextKey;
}
cornerId[key] = id;
nextKey++;
return this;
},

removeCornerId: function(key) {
if(cornerId[key]) {
delete cornerId[key]
}

return this;
},
getCornerId: function(key) {
if(cornerId[key]) {
return cornerId[key];
}

return null;
}
};
};
var elemArray = [];
var newMatrix =new elementMatrix();
newMatrix
.addCornerId('z')
.addCornerId('a')
.addCornerId('XXX', 0)
.addCornerId('YYYY', 'abc');
elemArray.push(newMatrix);

alert(elemArray[0].getCornerId(0));
alert(elemArray[0].getCornerId('abc'));

关于Javascript:访问对象内部的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13947145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com