属性 Javascript 的访问属性
Access property of a property Javascript
这应该是一些基础知识,但我无法通过 2 天的谷歌搜索找到解决它的方法。无论如何,它来了。我有一个
array_1 = [1,2,3...]
其中每个元素都是唯一的,即 ID另外,我有一个
Obj_1 = {2001=[2073,183,11],2011=[101,7,83,179], 2089=[1,11], ...}
目标:将Obj_1
的每个属性的数组元素与array_1
的元素匹配,如果匹配,则将属性 - 匹配元素的 ID (来自 array_1
) 添加到Obj_2
,并将匹配值 (of Obj_1
) 中的整个数组添加到此属性。例。当我浏览Obj_1
的属性2001
时,ID 11
将与数组匹配。然后我希望将属性11
值添加到Obj_2
中,以便最终
Obj_2 = {11:{2001:[2073,183,11],2089:[1,11]}, 7:{}, 1:{}..}
我编写了这段代码,以以下形式将其保存为数组,而无需从Obj_1添加属性键。
var Obj_2 = {};
var key1 = 0;
for (var i in array_1) {
Obj_2[array_1[i]] = [];
for (var x in Obj_1){
for (var m in Obj_1[x]){
if (Obj_1[x][m]==array_1[i]){
key1 = array_1[i];
Obj_2[key1].push(Obj_1[x]);
}
}
}
}
因此,我现在得到的结果是 Obj_2 = {11:[[2073,183,11],[1,11]], 7:[[]], 1:[[]] ...}
主要问题是我不知道
1. how to access the property of a property (especially with respect to the differences between when a property exists and when it doesn't)
2. how to add the value for the property of a property
指出正确的方向将不胜感激。只是结束说明,这是Google脚本上的脚本,但我想它没有任何区别。
小提琴在这里。
var indexes = [1, 3, 5];
var Obj_1 = {'100':[3,183,1],'200':[101,5,2,179],'300':[1,11]};
var Obj_2 = { };
var needle = 0;
for (var i in indexes) {
needle = indexes[i];
Obj_2['' + needle] = { };
for (var prop_1 in Obj_1) {
var haystack = Obj_1[prop_1];
if (haystack.indexOf(needle) >= 0) {
Obj_2[needle]['' + prop_1] = haystack;
}
}
}
console.log(Obj_2);
在Javascript中操作对象和数组时要小心,它们没有相同的结构,但项目访问运算符([])是相同的。
相关文章:
- JavaScript Pub/Sub属性访问问题
- AngularJS:如何用同一对象的另一个属性访问一个属性
- Ember JS属性访问器
- 对方法或属性访问的意外调用
- 对jQuery中IE8的方法或属性访问的意外调用
- 对方法或属性访问的意外调用.在JQUERY
- XDomainRequest onload上对方法或属性访问的意外调用
- Javascript属性访问速度:var.properties与var[“属性”]的区别
- 从函数属性访问对象属性;不适用于Firefox
- 重写内部 HTML 属性访问
- (仅在IE中)SCRIPT65535:对方法或属性访问的意外调用.主.js,第 152 行字符 28
- 使用表达式属性访问不同的模型模板选项
- jQuery mobile 1.1.0 滑块:JS-对象属性访问
- Ractive.js,通过命名属性访问父属性
- jQuery验证插件addMethod可以通过属性访问
- 如何使用动态属性访问对象
- 我无法通过 Firefox 中的“for”属性访问标签,但可以在 Chrome 中访问标签
- JavaScript 对象原型属性访问
- 使用虚拟属性访问猫鼬模型中的嵌套文档
- 是否可以在Javascript/Coffeescript中的属性访问期间自动调用函数调用