You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于一维数组计算二维数组每行末尾元素并追加结果

实现二维数组与一维数组的对应计算并追加结果

嘿,这个需求很明确,咱们直接来搞定它!核心逻辑就是遍历二维数组的每一行,取出每行最后一个元素,和一维数组对应位置的元素做「相乘后除以2」的计算,再把结果追加到当前行的末尾就行。

我给你准备了两种常用编程语言的实现示例,你可以按需选用:

Python 实现

# 示例输入数据
arr1 = [['a', 'b', 9], ['s', 'c', 12], ['x', 'y', 14]]
arr2 = [3, 2, 6]

# 生成新数组(不修改原数组)
new_arr = []
for row, multiplier in zip(arr1, arr2):
    # 复制原行,避免修改原数组的内容
    new_row = row.copy()
    # 取出当前行的最后一个元素
    last_item = new_row[-1]
    # 执行计算
    calc_result = (last_item * multiplier) / 2
    # 追加结果到行尾
    new_row.append(calc_result)
    new_arr.append(new_row)

print(new_arr)
# 输出结果: [['a', 'b', 9, 13.5], ['s', 'c', 12, 12.0], ['x', 'y', 14, 42.0]]

JavaScript 实现

// 示例输入数据
const arr1 = [['a', 'b', 9], ['s', 'c', 12], ['x', 'y', 14]];
const arr2 = [3, 2, 6];

// 用map方法生成新数组,保持原数组不变
const newArr = arr1.map((row, index) => {
    // 复制原行
    const newRow = [...row];
    // 获取当前行最后一个元素
    const lastItem = newRow[newRow.length - 1];
    // 计算结果
    const calcResult = (lastItem * arr2[index]) / 2;
    // 追加到行尾
    newRow.push(calcResult);
    return newRow;
});

console.log(newArr);
// 输出结果: [['a', 'b', 9, 13.5], ['s', 'c', 12, 12], ['x', 'y', 14, 42]]

几个需要注意的点

  • 一定要确保二维数组的行数和一维数组的长度一致,否则会出现部分行找不到对应乘数的情况,导致计算出错。
  • 上面的示例都是生成新数组,不会修改原数组的数据。如果你确实需要直接修改原数组,可以去掉row.copy()或者[...row]的步骤,直接在原行上追加结果,但这种操作可能会带来意外的副作用,谨慎使用。
  • 如果需要计算结果为整数,可以用取整方法处理,比如Python里的math.floor(),JavaScript里的Math.round()或者Math.floor()。

内容的提问来源于stack exchange,提问作者Mask

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 21:07:31