c语言编程笔录

首页 >   > 笔记大全

笔记大全

用Return从For循环中返回指定值

更新时间:2023-09-14

用Return从For循环中返回指定值

第一段:在For循环内部使用简单的return

如果您只希望在for循环中找到一个值后返回,您可以在for循环内部使用简单的return语句来返回目标值。例如:

		function findNumber(numbers, target) {
		  for (let i=0; i < numbers.length; i++) {
		    if (numbers[i]===target) {
		      return i; // 找到指定数字并返回其下标
		    }
		  }
		  return -1; // 未找到指定数字
		}
	

第二段:使用标签标记找到的项目内容

有时您需要在for循环中找到多个匹配项,在这种情况下,您可以使用标签标记找到的项目内容,并将所有标记的内容放入数组中。例如:

		function findMatches(numbers, target) {
		  const matches=[];
		  for (let i=0; i < numbers.length; i++) {
		    if (numbers[i]===target) {
		      matches.push({numbers[i]}); // 标记匹配的数字
		    }
		  }
		  return matches;
		}		
	

第三段:使用对象返回所有找到的数据

在某些情况下,您需要返回多个值,并希望以对象形式返回。您可以使用对象字面量来创建返回对象,其中每个属性都是您需要返回的值。例如:

		function findAll(numbers, target) {
		  const results={
		    matches: [],
		    indices: [],
		    count: 0
		  };
		
		  for (let i=0; i < numbers.length; i++) {
		    if (numbers[i]===target) {
		      results.matches.push({numbers[i]}); // 标记匹配的数字
		      results.indices.push(i); // 将匹配数字的下标存入数组
		      results.count++; // 匹配计数器加1
		    }
		  }
		
		  return results; // 返回一个对象,其中包含所有找到的值的数组和计数器
		}			
	

第四段:使用Generators返回多个值

如果您需要返回多个值,但不希望以数组或对象的形式返回它们,则可以使用生成器函数。使用yield语句可以在多次调用函数时从函数中返回多个值。例如:

		function* findMatches(numbers, target) {
		  for (let i=0; i < numbers.length; i++) {
		    if (numbers[i]===target) {
		      yield i; // 通过yield语句返回匹配项的下标
		    }
		  }
		}
		
		const numbers=[1, 2, 3, 4, 5, 3, 2];
		const matches=findMatches(numbers, 3);
		for (const match of matches) {
		  console.log(match); // 显示数字3在数组中的下标
		}		
	

总结

可以针对for循环从中返回指定值,使用简单的return语句、使用标签标记找到的项目内容、使用对象返回所有找到的数据或使用Generators返回多个值。关键是了解您需要从for循环中返回的内容以及如何使用这些方法来实现。
如果您需要返回多个值,则使用对象或生成器函数,而不是简单的数组。
保持代码整洁,并确保您的代码注释清晰和易于理解