javascript - 对 Json 值进行数学运算,在 For 循环中不起作用
问题描述
我正在尝试替换 JSON 格式变量中的值。
这是我的数据格式:
{
"y":-10.9569,
"x":26.4007,
"z":11.9888,
"t":109.122
},
{
"y":-9.78734,
"x":6.85818,
"z":11.9832,
"t":109.439
},
{
"y":-9.30135,
"x":-2.72265,
"z":11.9493,
"t":109.594
},
{
"y":-7.90726,
"x":-33.3971,
"z":12.012,
"t":110.14
},
{
"y":-6.8483,
"x":-56.5212,
"z":11.916,
"t":110.611
},
我试过这段代码,但它输出的值没有改变:
for(var i = 1; i < json.length; i++ ) {
json.recording.path[i].t = json.recording.path[i].t*0.9;
}
console.log(json);
但是当我省略for
循环时,代码会正确替换该值:
json.recording.path[1].t = json.recording.path[1].t*0.9;
console.log(json);
这里有什么问题?
解决方案
您正在迭代变量“json”的长度,但修改了“json.recording.path”。您也是从索引 1 而不是 0 开始的,这将导致它跳过第一个元素。
试试这个:
for(var i = 0; i < json.recording.path.length; i++ ) {
(正如一些人在评论中指出的那样,这不是 JSON,它是一个 javascript 对象。JSON 是一种用于传输和存储对象的字符串格式。)
推荐阅读
- angular - 如何从 AngularFireAuth 获取 signInAnonymously 以返回承诺
- r - 如何将列转换为以另一个数字列中的值为条件的总和?
- text - AT&T 电子邮件到文本显示 CSS 片段
- javascript - 如何获取鼠标悬停元素的属性
- c++ - C++ 两种相互依赖的类型
- python - 读取和操作 CSV 格式的电子表格
- gensim - Word2Vec - 如何摆脱“TypeError: unhashable type: 'list'”和“AttributeError: dlsym(0x7fa8c57be020, AttachDebuggerTracing): symbol not found”?
- javascript - 添加更多视频
- python - Django确定Min是否唯一
- ios - CAEmitterLayer 最终在添加 EmitterCells 时有延迟