gpt4 book ai didi

javascript - javascript 是否可以根据数组的内容来提取数组?

转载 作者:行者123 更新时间:2023-12-03 00:19:27 26 4
gpt4 key购买 nike

我有一个捕获视频、照片、音频和文本数据的表单数据。这些字段的数量是动态的,因此我可以有多个视频、音频字段等,这会导致表单在提交时崩溃或变得太慢。我目前正在通过普通表单操作提交而不使用ajax 进行提交。

我想修改这种行为,这样我就可以一次提交一个请求的表单字段,并且可以向客户端显示进度,如下所示。

Basic information has been saved.
Audio 1 uploaded.
Video 2 uploaded.
Video 3 currently uploading ...
Video 4 pending.
Audio 5 pending.

以下是我运行 form.serializeArray() 时表单数据的外观

0: {name: "utf8", value: "✓"}
1: {name: "authenticity_token", value: "token data here"}
2: {name: "data[name]", value: "a"}
3: {name: "response[100]", value: "data:video/webm;base64,...."}
4: {name: "response[101]", value: "text data here"}
5: {name: "privacy_policy", value: "1"}

现在我想为一个单独的 Ajax 表单请求(例如 ff)切割这个数组:

请求1 - 基本信息

0: {name: "utf8", value: "✓"}
1: {name: "authenticity_token", value: "token data here"}
2: {name: "data[name]", value: "a"}

请求 2 - 视频数据

0: {name: "utf8", value: "✓"}
1: {name: "authenticity_token", value: "token data here"}
2: {name: "response[100]", value: "data:video/webm;base64,...."}

请求 3 - 文本数据

0: {name: "utf8", value: "✓"}
1: {name: "authenticity_token", value: "token data here"}
2: {name: "response[101]", value: "text data here"}

现在我想知道javascript中是否有内置的方法来实现这种切割数组的方式。就像是basic_info = formdata.remove(name, 'response').

还是没有?我需要通过循环这个数组来手动完成它?

谢谢

最佳答案

首先取出想要出现在每个数组中的对象,然后 .map 其余的来创建一个新数组,每个新数组项都是一个包含这些对象加上该项的子数组迭代:

const input = [
{name: "utf8", value: "✓"},
{name: "authenticity_token", value: "token data here"},
{name: "data[name]", value: "a"},
{name: "response[100]", value: "data:video/webm;base64,...."},
{name: "response[101]", value: "text data here"},
{name: "privacy_policy", value: "1"}
];
const [item1, item2, ...rest] = input;
const output = rest.map(item3 => [item1, item2, item3]);
console.log(output);

如果您不需要 privacy_policy,只需先从 inputpop() 即可。

关于javascript - javascript 是否可以根据数组的内容来提取数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54384893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com