我遇到了一个问题,在这里我有一个对象,如下所示
a = {
b: {
c: 10
}
};
现在这是一个动态对象,在运行时可以是空的,就像这个a={},我试图用ES6速记符号来读取c,比如const{b:{c}}=a;。但每次对象为空时都会出现错误。有没有一种方法我仍然可以对空对象使用这种表示法,比如在这种情况下c的get undefined。
我知道我可以做像(a. b?a. b. c:未定义),但我只是想知道怎么做。
您可能需要一种通用的方法,这种方法对于浅层结构来说并不简洁,但可以节省您编译条件的静态序列。
function dive (obj, pz) {
return pz.reduce((acc, p) => {
return obj && p in acc ? acc[p] : undefined;
}, obj);
}
你可以使用任意深度
console.log(dive({a:{b:{c:[10,11,12]}}}, ['a', 'b', 'c', 1]))
c、 f.本演示
你能行
let a = {
b: {
c: 10
}
};
let result = a && a.b && a.b.c;
console.log(result);
您可以对内部对象执行={}
:
js lang-js prettyprint-override">const a = {
b: {
c: 10
}
};
const f = ({b: {c} = {}}) => console.log(c)
f(a)
f({})
这不只是为每个属性做一堆if/else if用例吗?
假设您有分层数据,并且希望获得单独属性的合并值,那么最优雅的,或者说groovy的方法是什么呢?
问题内容: 我想知道,JavaScript提供了多种方法来从任何元素中获取第一个子元素,但是哪种方法最好呢?最好的意思是:在行为方面,大多数跨浏览器兼容,最快,最全面且可预测。我用作别名的方法/属性的列表: 这适用于两种情况: 在表单或迭代的情况下。如果我可能遇到文字元素: 据我所知,使用来自的NodeList ,并使用。我将这一假设基于MDN参考: 是对元素节点的第一个子元素的引用,或者如果不存
我想知道,JavaScript提供了多种方法从任何元素中获取第一个子元素,但哪种方法最好?我所说的“最佳”是指:在行为方面,最兼容跨浏览器、最快、最全面、最可预测。我用作别名的方法/属性列表: 这适用于两种情况: 这是表单的情况,或
问题内容: 我需要将JSON对象放入HTML元素的属性中。 HTML不必验证。 昆汀回答: 将JSON存储在有效HTML5 的attribute中。 JSON对象可以是任何大小-即巨大 如果JSON包含特殊字符怎么办? 例如 昆汀回答:按照常规惯例,将JSON字符串放入属性之前,先对其进行编码。 对于PHP,请使用 函数。 编辑-使用PHP和jQuery的示例解决方案 将JSON写入HTML属性:
我试图找出在Spark dataframe列中获得最大值的最佳方法。 考虑以下示例: 上面的每一个都给出了正确的答案,但在没有Spark分析工具的情况下,我无法判断哪一个是最好的。 就Spark运行时或资源使用而言,上述哪种方法最有效,或者是否有比上述方法更直接的方法,有任何来自直觉或经验主义的想法?