gpt4 book ai didi

javascript - 在 JavaScript 中循环函数可以吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:02:04 24 4
gpt4 key购买 nike

是否有任何类型的内置方法可以在不循环的情况下迭代对象参数。就像数组对象有方法(forEach、sort、filter..)。例如有一个数组

var numbers = [3,342,23,22,124];
var max = 0;
for(var i=0;i<numbers.length;i++){
if(numbers[i] > max){
max = numbers[i];
}
}
alert(max);

可以使用 sort() 方法代替循环

var numbers = [3,342,23,22,124];
numbers.sort(function(a,b){return b - a});
alert(numbers[0]);

对于 JavaScript 中的常规对象 {} 是否有任何方法,其工作方式与 sort() 相同?

更一般地说,有什么方法可以避免这种循环:

for(var parameter in object){
var data = object[parameter]
exampleMethod(data);
}

有没有办法在不循环的情况下多次执行一个函数?

最佳答案

不,但您通常可以使用 Object.keys() 之类的函数来打开通向 Array 原型(prototype)方法(例如 .forEach())的途径。

Object.keys() 方法返回一个数组,其中包含对象的“自己的”属性名称。 (“自己的”名称是直接在对象上的属性名称,而不是从原型(prototype)链继承的。)从那里,您可以使用像 .forEach 这样的 Array 方法来遍历属性名称并且,通过属性值使用它们来引用对象。

例如,考虑这个对象:

var dimensions = {
length: 20,
height: 30,
width: 40
};

如果你想总结边缘,你可以这样做:

var perimeter = Object.keys(dimensions).reduce(function(sum, dkey) {
sum += 4 * dimensions[dkey];
return sum;
}, 0);

另请注意相关方法 Object.getOwnPropertyNames()Object.getOwnPropertySymbols(),它们扩展了可用于迭代的属性。

关于javascript - 在 JavaScript 中循环函数可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34866448/

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