Javascript 查找行数组中最后一列的最后一个值
我试图解释这段代码,它用于对最后一列中的所有值求和Javascript 查找行数组中最后一列的最后一个值,javascript,arrays,Javascript,Arrays,我试图解释这段代码,它用于对最后一列中的所有值求和 rows.map(r => r[Object.keys(r)[Object.keys(r).length - 1]]).reduce((a, b) => a + b, 0); 这是什么意思?有人能建议我如何重写它,以便在最后一列中只给出最新的值吗?考虑行是否为: rows = [ {"a": 1, "b": 2, "c": 3}, {"a&qu
rows.map(r => r[Object.keys(r)[Object.keys(r).length - 1]]).reduce((a, b) => a + b, 0);
这是什么意思?有人能建议我如何重写它,以便在最后一列中只给出最新的值吗?考虑
行
是否为:
rows = [
{"a": 1, "b": 2, "c": 3},
{"a": 4, "b": 5, "c": 6}
];
代码是这样写的:对于“最后”列(即c
),将c
列中的值相加
此位:
Object.keys(r).length-1
确定每行“object”中的属性数,即“last”列是“last”属性,使用-1
可以知道键的索引。在本例中,每行有3列,c
的索引为2
此位:
Object.keys(r)[Object.keys(r).length-1]
然后返回值c
,因为它位于每个行对象的键列表中的索引2处(假设每个行对象具有相似的命名键和顺序键)
所以整件事:
rows.map(r=>r[Object.keys(r)[Object.keys(r.length-1]]).reduce((a,b)=>a+b,0)代码>
这句话的意思和:
rows.map(r=>r[“c”]).reduce((a,b)=>a+b,0)代码>
除非必须计算出c
——可能您使用此代码,但不知道“最后一列”的键
因此,要查找最后一列的最后一个值,您不需要使用reduce
函数,您只需要知道数组中的行数并减去1即可获得索引,例如:
rows.map(r=>r[Object.keys(r)[Object.keys(r).length-1]])[rows.length-1]
const rows=[{“a”:1,“b”:2,“c”:3},{“a”:4,“b”:5,“c”:6}];
const finalColumnSum=rows.map(r=>r[Object.keys(r)[Object.keys(r.length-1]]).reduce((a,b)=>a+b,0);
const finalValue=rows.map(r=>r[Object.keys(r)[Object.keys(r.length-1]))[rows.length-1];
log(`Last column sum:${finalColumnSum}`);
log(`Last column/row value:${finalValue}`)代码>很好的解释!!!。。。。。您能告诉我如何使用相同的术语从特定列中获取值吗?如果您知道列的名称,例如b
thenrows.map(r=>r[“b”])[rows.length-1]
great..我能将此值抛出到一个变量,并使用该变量执行类似于const finalValue=rows.map(r=>r)的函数吗[Object.keys(r)[Object.keys(r.length-1]])[rows.length-1];if(finalValue<1000){console.log(
值小于1000:${finalValue});}else if(finalValue>1000){deno1='they';deno2='they';deno1_up='they';console.log(
值大于1000);}else{抛出'Null';}
请继续问一个关于if..else语句的新问题。如果这是正确答案,您可以使用绿色勾号来标记。是的,创建了新问题,请将您的答案张贴在那里吗?[链接]