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
then
rows.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语句的新问题。如果这是正确答案,您可以使用绿色勾号来标记。是的,创建了新问题,请将您的答案张贴在那里吗?[链接]