【发布时间】:2020-02-12 05:40:43
【问题描述】:
我有以下具有这些属性的对象:
我需要循环我的代码 sn-p 以便每次循环时变量 arrayPosition 都会增加,file[arrayPosition].file 的值也会根据 arrayPosition 发生变化。
this.state.videoSource 的值也会动态变化,因为它基于 file[arrayPosition].file。
这是我现在的代码:
const response = await dataProvider(GET_MANY, 'vid', { ids: videoId })
const file = response.data;
var arrayPosition = 0;
var sigkey = "key";
var formBody = new FormData();
formBody.set('ver', "1.2");
formBody.set('key', "key");
formBody.set('video_id', file[arrayPosition].file);
formBody.set('user_id', "1234");
formBody.set('format', "json");
formBody.set('ip', "");
formBody.set('tts', "0");
formBody.set('nonce', Math.round((new Date()).getTime() / 1000));
var sign_fields = [formBody.get('video_id'), formBody.get('user_id'), formBody.get('ip'), formBody.get('tts'), formBody.get('ver'), formBody.get('key'), formBody.get('nonce')];
var data = sign_fields.join(':');
var signature = hmacsha256(data, sigkey);
formBody.set('sig', signature);
var formBodyStringified = new URLSearchParams(formBody).toString();
const resJson = await fetch(Config.api.livebox, {
method: 'POST',
body: formBodyStringified,
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
}).then(res => res.json());
const finalJsonUrl = 'https:' + resJson.hls;
this.setState({ videoSource: finalJsonUrl });
arrayPosition++;
任何建议我如何循环此代码示例,以便file[arrayPosition].file 的值会根据arrayPosition 的值而改变?
如果有不清楚的地方,请询问。 提前谢谢你。
【问题讨论】:
-
你想达到什么目的?您想为每个
file获得一个form吗?你可以把这段代码放在files.forEach... -
我知道我应该使用某种循环,但它们不是我的强项,因此我在这里。是的,我基本上想为每个文件获取一个表单。
标签: javascript reactjs loops object