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
即可反序列化它


注意:我使用了一个字符串来定义
属性,您只能通过括号表示法来检索它,否则您会在控制台中得到一个非法的
意外标记。

JSON是一种数据交换格式,它不能包含代码。这是出于设计考虑,由于它被解析为JS
Object
s原样,因此存在足够多的安全漏洞。我猜你刚刚扼杀了我的梦想(问题)。这也是无效的JS对象。无论如何,你可以做到这一点,但有一些技巧可以应用,马上发布答案注意:我使用is作为本地数据,而不是作为跨web的交换格式。