我有一个在标题中描述的任务。我不能在代码中的某个地方使用数组、循环和 Object.keys。我只能使用Math.random。
JSON 文件:
{
"key": "item 1, item 2, item 3",
"key2": "abc",
"key3": "123"
}
我什至无法想象如果没有我描述的技术如何做到这一点。如果任务支持 Object.keys 它将非常简单(但我不能将其写为答案)。
我可以从 JSON 接收的对象:
let obj = {
key: "item 1, item 2, item 3",
key2: "abc",
key3: "123"
};
我用 Object.keys 选择随机值的函数(我不能使用):
let randomProperty = function (obj) {
let keys = Object.keys(obj);
return obj[keys[ keys.length * Math.random() << 0]];
};
可以使用 JSON.stringify 和 parse,因为它必须是 JSON 文件而不是我编写的对象。
请帮忙!
伊万答案的变体,代码少得多。字符串化替换器 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify第一次计算参数,然后第二次选择一个。
let obj = {
key: "item 1, item 2, item 3",
key2: "abc",
key3: "123"
};
let k, n = 0;
JSON.stringify(obj, (key, value) => (key && ++n || value));
n *= Math.random();
JSON.stringify(obj, (key, value) => (key && --n | 0 || (k = key) || value));
console.log(obj[k]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)