Javascript 如果for循环中的条件不起作用,则为第二个
我有一个数组Javascript 如果for循环中的条件不起作用,则为第二个,javascript,arrays,for-loop,if-statement,Javascript,Arrays,For Loop,If Statement,我有一个数组data,其中包含如下对象: data = [{ "array": "arr_id_0", "direct": "+", "axis": "x", "s": "1" }, { "array": "arr_id_1", "direct": "+", "axis": "y", "s": "2" }, { "array": "arr_id_2", "direct": "+", "axis
data
,其中包含如下对象:
data = [{
"array": "arr_id_0",
"direct": "+",
"axis": "x",
"s": "1"
},
{
"array": "arr_id_1",
"direct": "+",
"axis": "y",
"s": "2"
},
{
"array": "arr_id_2",
"direct": "+",
"axis": "z",
"s": "3"
},
{
"array": "arr_id_3",
"direct": "+",
"axis": "x",
"s": "4"
}
]
轴可以更改为x
,y
,z
。根据轴的不同,我需要将s
的值写入相应的数组sum\u x
,sum\u y
或sum\u z
。最后,我需要每个数组的和
我使用for循环编写了以下代码来迭代数据
,选择s值并将其写入总和
-数组的on中
function sum_axis() {
var sum_x = [];
var sum_y = [];
var sum_z = [];
for (var i = 0; i < data.length; i++) {
if (data[i]['axis'] == 'x') {
sum_x.splice(i, 1, data[i]['s'])
};
if (data[i]['axis'] == 'y') {
sum_y.splice(i, 1, data[i]['s'])
};
if (data[i]['axis'] == 'z') {
sum_z.splice(i, 1, data[i]['s'])
};
console.log(data)
console.log(sum_x, sum_y, sum_z)
}
}
预期产出为:
sum_x = [1,4]
sum_y = [2]
sum_z = [3]
sum_x = [1,2,3,4]
sum_y = []
sum_z = []
实际产出为:
sum_x = [1,4]
sum_y = [2]
sum_z = [3]
sum_x = [1,2,3,4]
sum_y = []
sum_z = []
你的密码没问题。试着在你的控制台上运行这个
var data=[{“array”:“arr_id_0”,“direct”:“+”,“axis”:“x”,“s”:“1”},
{“数组”:“arr_id_1”,“direct”:“+”,“axis”:“y”,“s”:“2”},
{“数组”:“arr_id_2”,“direct”:“+”,“axis”:“z”,“s”:“3”},
{“数组”:“arr_id_3”,“direct”:“+”,“axis”:“x”,“s”:“4”}]
函数和_轴(){
var sum_x=[];
var sum_y=[];
var sum_z=[];
对于(var i=0;i您的代码正在工作,混淆可能是因为您在循环中有最后一个控制台.log
,如果您将它从循环中取出,那么您将得到想要的结果
var数据=[{
“数组”:“arr\u id\u 0”,
“直接”:“+”,
“轴”:“x”,
“s”:“1”
},
{
“数组”:“arr\u id\u 1”,
“直接”:“+”,
“轴”:“y”,
“s”:“2”
},
{
“数组”:“arr_id_2”,
“直接”:“+”,
“轴”:“z”,
“s”:“3”
},
{
“数组”:“arr_id_3”,
“直接”:“+”,
“轴”:“x”,
“s”:“4”
}
];
函数和_轴(){
var sum_x=[];
var sum_y=[];
var sum_z=[];
对于(变量i=0;i
我建议您给出一个orgin数组,并给出一个预期的输出?这比您的文字和代码更清楚。我刚刚更新了它。我希望现在这更有意义。您的代码工作正常。请提供一个小提琴来演示这个问题。您确定您的比较是double=
?您确定没有吗t不小心将sum_x.splice
写入三次,而不是sum_y
和sum_z
?请提供执行时显示您所说结果的代码。问题是轴
-值没有正确传递到数组。因此基本上它是在轴
位置写入x
。I我现在已经修复了。但是谢谢你的console.log
提示。这实际上让我意识到了实际的问题。我有点意识到了。请看我对上面答案的评论。