gpt4 book ai didi

javascript - 将函数添加到 javascript 的 Array 类中断循环

转载 作者:行者123 更新时间:2023-12-05 01:31:35 25 4
gpt4 key购买 nike

我一直在寻找一种将最大/最小函数添加到 JavaScript 的 Array 类的方法,这似乎是一个已解决的问题:JavaScript: min & max Array values? .但是,当我尝试使用它时,我的代码开始出现错误。事实证明,这种方法不适用于循环。

for(i in myArray) { console.log(i) } prints out1
2
3
max
min

我可以使用另一种方法吗?

最佳答案

公认的解决方案解决了您眼前的问题,但扩展核心对象通常是一个 bad idea .当您稍后包含一个使用 for..in 的库时会发生什么?或者当您在几个月后忘记并在代码的不同部分使用了错误的方法时?

另一种选择是包装和扩展。创建一个使用 Array 实例作为其原型(prototype)的新类型:

function ArrayThing() {}

ArrayThing.prototype = new Array();

现在你有一个对象,你可以在不影响 Array 的情况下扩展它:

ArrayThing.prototype.max = function() {
return Math.max.apply(null, [].slice.call(this, 0))
}

ArrayThing.prototype.min = function() {
return Math.min.apply(null, [].slice.call(this, 0))
}

var list = new ArrayThing();

// standard array methods still work
list.push(5);
list.push(22);
list.push(0);
list.push(-14);
list.length // => 4

// as do your new custom methods
list.max() // => 22
list.min() // => -14

这并非在所有情况下都有效,但除非您确定您真的、真的需要一个 Array,否则这是一个有用的替代方法。

关于javascript - 将函数添加到 javascript 的 Array 类中断循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020954/

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