gpt4 book ai didi

javascript - 如何从循环中查找所有数组项的位置

转载 作者:行者123 更新时间:2023-12-03 04:45:39 24 4
gpt4 key购买 nike

我是编程新手,所以如果这是一个简单的问题,我深表歉意。

我有一个独特的练习问题,我不太确定如何解决:

我正在处理两个数组,两个数组都是从页面上的 HTML 元素中提取的,一个数组代表一堆状态,下一个数组代表它们的人口。问题的关键是打印各州的名称及其低于平均水平的人口。

要查找并打印所有低于平均值的人口,我使用了以下代码:

  function code6() {
// clears screen.
clr();
// both variables pull data from HTML elements with functions.
var pop = getData2();
var states = getData();
var sum = 0;
for( var i = 0; i < pop.length; i++ ){
sum += parseInt( pop[i], 10 );
var avg = sum/pop.length;
if (pop[i] < avg) {
println(pop[i]);

// other functions used in the code to get data, print, and clear the screen.
function getData() {
var dataSource = getElement("states");
var numberArray = dataSource.value.split('\n');
// Nothing to split returns ['']
if (numberArray[0].length > 0) {
return(numberArray);
} else {
return [];
}
}

// Get the data from second data column
function getData2() {
var dataSource = getElement("pops");
var numberArray = dataSource.value.split('\n');
// Nothing to split returns ['']
if (numberArray[0].length > 0) {
return(numberArray);
} else {
return [];
}
}

// Clear the 'output' text area
function clr() {
var out = getElement("output");
out.value = "";
}

// Print to the 'output' HTML element and ADDS the line break
function println(x) {
if (arguments.length === 0) x = '';
print(x + '\n');
}

现在我只需要知道如何获取数组中这些位置的值,以便我可以从状态数组中取出相同的位置并将它们并排显示。两个数组具有相同数量的项目。

我希望这是有道理的,并提前感谢任何有时间查看此内容的人。

最诚挚的问候,

-E

最佳答案

很难说出您想要实现的目标,但我猜您想要实现以下目标:

'use strict'

function code6() {
const populations = ['39000000', '28000000', '21000000'];
const stateNames = ['california', 'texas', 'florida'];
const states = populations.map((population, i) => ({
'name': stateNames[i],
'population': Number(population),
}));

const sum = states.reduce((sum, state) => sum + state.population, 0);
const average = sum / populations.length;
states
.filter(state => state.population < average)
.forEach(state => {
const name = state.name;
const population = state.population;
console.log(`state name: ${name}, population: ${population}`);
});
}

// run the code
code6();
// state name: texas, population: 28000000
// state name: florida, population: 21000000

我冒昧地重构了您的代码,使其更加现代(es6)和地道。我希望它不会让您感到困惑。如有任何问题,请随时提出。

简而言之,您应该使用:

  • 在文件顶部添加“use strict”
  • 常量/让
  • 使用map/filter/forEach/reduce 迭代列表。
  • 使用有意义的名称

,你应该避免:

  • 经典索引 for 循环
  • 解析Int

,而且几乎从不使用:

  • 变量

关于javascript - 如何从循环中查找所有数组项的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42880308/

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