如何解决如何在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);
};
为什么我要使用扩展运算符?
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 举报,一经查实,本站将立刻删除。