微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在javascript中设置数组对象的键值?

如何解决如何在javascript中设置数组对象的键值?

我正在创建拖放文件(可以选择多个文件功能用户可以在这里选择多个文件。我想将文件的大小从字节转换为 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);
};

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

this is what i'm getting in files(a list of objects)

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

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

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

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。