gpt4 book ai didi

javascript - 如何编写这些函数以使用 forEach() 语句?

转载 作者:行者123 更新时间:2023-11-30 14:06:47 25 4
gpt4 key购买 nike

如何使用 forEach() 方法编写这些(工作)函数:

function loadAudioMeterHistory(cell) {
var peaks = new Array(4);

for (var i = 0; i < peaks.length; i++) {
var peak,
age;

peak = cell.getAttribute("data-peak-" + i);
age = cell.getAttribute("data-age-" + i);

peaks[i] = new Peak(peak, age);
}

return peaks;
}
function setAudioMeterHistory(cell, peaks) {
for (var i = 0; i < peaks.length; i++) {
cell.setAttribute("data-peak-" + i, peaks[i].peak);
cell.setAttribute("data-age-" + i, peaks[i].age);
}
}

我的尝试如下:

function loadAudioMeterHistory(cell) {
"use strict";
var peaks = new Array(4);

peaks.forEach(function(item, index) {
var p = cell.getAttribute("data-peak-" + index);
var a = cell.getAttribute("data-age-" + index);

item = new Peak(p, a);
});

return peaks;
}
function setAudioMeterHistory(cell, peaks) {
"use strict";
peaks.forEach(function(item, index) {
cell.setAttribute("data-peak-" + index, item.peak);
cell.setAttribute("data-age-" + index, item.age);
});
}

其行为不同,因为 peaks 从未正确创建。精明的 javascripter 无疑会认识到我正在尝试将我的代码提交给 jslint.com。

Peak() 方法(为简洁起见)很简单:

function Peak(peak, age) {
this.peak = peak;
this.age = age;
}

什么给了?

最佳答案

forEach 只是遍历列表但不返回任何内容。因此,请改用 map 并返回新创建的对象。

function loadAudioMeterHistory(cell) {
"use strict";

var peaks = [0, 1, 2, 3].map(function(item, index) {
var p = cell.getAttribute("data-peak-" + index);
var a = cell.getAttribute("data-age-" + index);

return new Peak(p, a);
});
}

还有一个问题是 peaksloadAudioMeterHistory 范围之外不可用。因此,让函数返回可以传递给下一个函数调用的内容。

function loadAudioMeterHistory(cell) {
"use strict";

return [0, 1, 2, 3].map(function(item, index) {
var p = cell.getAttribute("data-peak-" + index);
var a = cell.getAttribute("data-age-" + index);

return new Peak(p, a);
});
}

function setAudioMeterHistory(cell) {
"use strict";

var peaks = loadAudioMeterHistory(cell);

peaks.forEach(function(item, index) {
cell.setAttribute("data-peak-" + index, item.peak);
cell.setAttribute("data-age-" + index, item.age);
});
}

关于javascript - 如何编写这些函数以使用 forEach() 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55228494/

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