Javascript JSON:C的值取决于其他值?
给定一个对象,例如:Javascript JSON:C的值取决于其他值?,javascript,Javascript,给定一个对象,例如: var data = { { "A": 3, "B": 4, "C²": 25, "C": 5 } // hint: triangle } 其中值之间存在数学关系(C²=a²+B²) 是否可能有一些“内部操作”,例如: var data = { { "A": 3, "B": 4, "C²": (Math.pow(A,2)+Math.pow(B,2)), "C": Math.sqrt("C²") } // hint: triangle } 我将有一组+200
var data = {
{ "A": 3, "B": 4, "C²": 25, "C": 5 } // hint: triangle
}
其中值之间存在数学关系(C²=a²+B²)
是否可能有一些“内部操作”,例如:
var data = {
{ "A": 3, "B": 4, "C²": (Math.pow(A,2)+Math.pow(B,2)), "C": Math.sqrt("C²") } // hint: triangle
}
我将有一组+200 a,B值,我希望从中计算C值,然后重用它
如果可能,如何操作?
编辑:我将其用作本地数据,而不是跨web的交换格式 不,这是不可能的 但是,您可以在那里保存一个值,如
“operation”:“calculateTriangle”
,然后根据该值执行操作
function buildTriangleObject(a, b) {
var square = Math.pow(a, 2) + Math.pow(b, 2);
return {
A: a,
B: b,
"C²": square,
C: Math.sqrt(square)
};
}
var triangles = [],
triangle = buildTriangleObject(3, 4), //Object
stringified = JSON.stringify(triangle), //String, will be '{"A":3,"B":4,"C²":25,"C":5}'
parsed = JSON.parse(stringified); //Object, equals triangle
triangles.push(triangle);
做你想做的事情有点复杂:你试图在另一个对象中引用一个对象的变量,这有点愚蠢(你可以先引用父对象,然后再引用内部对象,但这是一团混乱,相信我)。这样,您就有了一个小助手函数,它可以为您创建对象,并且您可以按照自己喜欢的方式对其进行操作
因为您正在寻找这个数组的JSON表示,所以只需在三角形上使用JSON.stringify
即可获得整个数组的JSON,然后只需使用JSON.parse
即可反序列化它
注意:我使用了一个字符串来定义C²
属性,您只能通过括号表示法来检索它,否则您会在控制台中得到一个非法的意外标记。JSON是一种数据交换格式,它不能包含代码。这是出于设计考虑,由于它被解析为JSObject
s原样,因此存在足够多的安全漏洞。我猜你刚刚扼杀了我的梦想(问题)。这也是无效的JS对象。无论如何,你可以做到这一点,但有一些技巧可以应用,马上发布答案注意:我使用is作为本地数据,而不是作为跨web的交换格式。