【发布时间】:2020-12-26 01:28:41
【问题描述】:
object.js
var a = "level_2";
var b = "level_3";
var c;
const nums = [1, 2, 3, 4];
const num_1 = nums[Math.floor(Math.random() * nums.length)];
const num_2 = nums[Math.floor(Math.random() * nums.length)];
console.log({ num_1, num_2 });
if (num_1 <= num_2) {
c = [a];
} else {
c = [a][b];
}
/**
* Lets say I make a database call, the result is from a promise I use '.then()'
* eg:
* ...
* .then(level_1 => {
* let final;
* final = level_1[c]
* res.statusCode(200).json({ final })
* })...
*
* This is what I'm trying to achieve where I can determine the object property
* how deep in the object I would like to go before I get the object.*/
const level_1 = {
level_2: {
level_3: "level_3",
level_4: "level_4",
level_5: {
level_6: "level_6",
},
},
};
console.log("\nPrint 1:\n", level_1[a]);
console.log("\nPrint 2:\n", level_1[a][b]);
console.log("\nPrint 3:\n", level_1[c]);
if 语句显示了当涉及到我需要从对象中获得哪些信息时我将要处理的随机性。
结果 1:
当c 是[a][b] 时,这不起作用
$ node object.js
{ num_1: 4, num_2: 1 }
Print 1:
{
level_3: 'level_3',
level_4: 'level_4',
level_5: { level_6: 'level_6' }
}
Print 2:
level_3
Print 3:
undefined
结果 2:
这在c 如果只有[a] 时效果很好
$ node object.js
{ num_1: 2, num_2: 3 }
Print 1:
{
level_3: 'level_3',
level_4: 'level_4',
level_5: { level_6: 'level_6' }
}
Print 2:
level_3
Print 3:
{
level_3: 'level_3',
level_4: 'level_4',
level_5: { level_6: 'level_6' }
}
如何让c 工作?如您所见,Result 1 为 c 返回 undefined 这让我困惑了一段时间,如果有人可以帮助我,这将使我的代码非常高效。
【问题讨论】:
标签: javascript node.js oop object