Как использовать функцию уменьшения в JS

reduce— это метод массива в JavaScript, который используется для накопления всех элементов массива и в конечном итоге возврата одного значения. В качестве параметра она принимает функцию обратного вызова. Эта функция обратного вызова может принимать четыре параметра:

  1. Аккумулятор: Аккумулятор является результатом выполнения каждой функции обратного вызова. Он накапливает накопленное значение на каждой итерации.
  2. Текущий элемент: элемент массива, который в данный момент обрабатывается.
  3. Текущий индекс: индекс текущего элемента массива.
  4. Исходный массив: reduceИсходный массив вызова.

reduceСуществует две формы методов: одна принимает только функцию обратного вызова, а другая также может принимать начальное значение в качестве второго параметра.

Вот reduceбазовый пример использования:

const numbers = [1, 2, 3, 4, 5];

// 使用 reduce 对数组中的元素求和
const sum = numbers.reduce((accumulator, currentValue) => {
    
    
  return accumulator + currentValue;
}, 0); // 初始值为 0

console.log(sum); // 输出 15,因为 1 + 2 + 3 + 4 + 5 = 15

В этом примере мы используем для суммирования элементов массива reduce. numbersНачальное значение 0передается в аккумулятор, а затем функция обратного вызова складывает аккумулятор и текущий элемент на каждой итерации, в результате чего получается окончательная сумма.

Вы также можете не указывать начальное значение, и в этом случае reduceпервый элемент массива будет использоваться в качестве начального значения по умолчанию, а итерация начнется со второго элемента. Если массив пуст и начальное значение не указано, будет выдана ошибка.

reduceочень универсален, вы можете использовать его для выполнения различных операций накопления, таких как поиск максимального/минимального значения, объединение строк, вычисление средних значений и т. д. В зависимости от ваших потребностей вы можете написать соответствующую логику в функции обратного вызова для достижения необходимой функциональности.

PS: Ниже приведен метод записи, используемый в моем коде (вы можете узнать о моих собственных заметках на appsmitch):

const columns = inputData.fieldSource.reduce((prev:any,next:any,index:number)=>{
    
    
const {
    
     shouId,type } = next
prev[shouId] = {
    
    
 id:shouId,
 label:shouId,
 index:index,
 columnType:type,
 width:100,
}
return prev;
},{
    
    }
)

这里 fieldSource格式为  
fieldSource:[
{
    
    
	shouId:'code',
	type:'TEXTBOX'
},
{
    
    
	shouId:'delect',
	type:'TEXTBOX',
}
]
///
生成的结果为:
console.log(columns )
columns ={
    
    
code:{
    
    id:'code',label:'code',index:0,columnType:'TEXTBOX',width:100},
delect:{
    
    id:'delect',label:'delect',index:1,columnType:'TEXTBOX',width:100}
}

Je suppose que tu aimes

Origine blog.csdn.net/z2000ky/article/details/132729512
conseillé
Classement