【问题标题】:how to set a value of a key of an array object in javascript?如何在javascript中设置数组对象的键值?
【发布时间】:2021-07-13 08:46:46
【问题描述】:

我正在创建一个拖放文件(可以选择多个文件)功能。 W在这里用户可以选择多个文件。我想将文件的大小从字节转换为mb。 .获取所有文件的函数

scripts.js

const handleFiles = (files) => {
  files = [...files];

//converting bytes into mb and trying to assign it back to size key
  files.forEach(function (file) {                      <----these lines need to be changed
    file["size"] = `${(file["size"] / 1024 ** 2).toFixed(2)} mb`; <------
  });                                                  <-----
  console.log(files);
};

我将其作为控制台中文件变量值的输出。

为什么我使用扩展运算符?

Ans:如果我不使用扩展运算符并且用户只选择一个文件,那么它将作为对象而不是作为对象列表传递

如何为对象的每个大小键设置新值。

【问题讨论】:

    标签: javascript arrays javascript-objects


    【解决方案1】:

    File.size 是一个只读属性,您无法更改它(参见此处:https://developer.mozilla.org/en-US/docs/Web/API/File#instance_properties)。 如果要在 UI 中以 Mb 显示文件大小,则必须获取 File.size(或 File["size"],就像您正在做的那样),并像在函数中一样处理它以显示它UI(让函数返回一个大小数组,或在应用的渲染部分包含大小格式),但您不能更改 File 实例本身的属性。

    【讨论】:

    • 哦。感谢您的帮助和知识。
    • 如果答案有帮助,很高兴将其标记为已接受:它将不再出现在未解决的问题中。
    猜你喜欢
    • 1970-01-01
    • 2021-07-19
    • 2016-07-24
    • 2020-05-14
    • 1970-01-01
    相关资源
    最近更新 更多