Как я могу отфильтровать массив JavaScript по первой букве элемента? - PullRequest
0 голосов
/ 03 августа 2020

Допустим, я хочу выполнить поиск в массиве тикеров и вернуть все элементы в массиве, начинающиеся с S, а затем записать их в sCompanies = [].

Кто-нибудь знает, как я go об этом с помощью a for или while l oop?

// Iterate through this list of tickers to build your new array:
let tickers = ['A', 'SAS', 'SADS' 'ZUMZ'];

//console.log(tickers);



// Define your empty sCompanies array here:

//Maybe need to use const sComapnies = [] ?
let sCompanies = []


// Write your loop here:


for (i = 0; i < tickers.length; i++) {
  console.log(tickers[i]);
  
}



// Define sLength here:

sLength = 'test';

/*
// These lines will log your new array and its length to the console:
console.log(sCompanies);
console.log(sLength);*/

Ответы [ 4 ]

0 голосов
/ 03 августа 2020

Я также получил следующий код в качестве модельного решения, я понял, что причина использования этого формата - это случай, если я хочу настроить таргетинг на что-то другое, кроме первой буквы: ] вместо [0], чтобы указать вторую букву.

0 голосов
/ 03 августа 2020

с вашим l oop это будет примерно так:

for (i = 0; i < tickers.length; i++) {
  if (tickers[i].startsWith('S')) {
    sCompanies.push(tickers[i]);
  }
}

ИЛИ немного более современное

for (const i in tickers) {
  if (tickers[i].startsWith('S')) {
    sCompanies.push(tickers[i]);
  }
}

Еще лучше использовать for...of, который предназначен для циклических массивов.

for (const ticker of tickers) {
  if (ticker.startsWith('S')) {
    sCompanies.push(ticker);
  }
}

Или вы можете сделать один лайнер, как в ответе выше.

0 голосов
/ 03 августа 2020

Это будет go через массив тикеров, и если он начинается с «S», добавить его в массив sCompanies.

tickers.forEach(function (item, index, array) {
    if (item.startsWith('S')) {
        sCompanies.push(item);
    }
})
0 голосов
/ 03 августа 2020

Почему бы вам просто не использовать такую ​​функцию фильтра?

// Only return companies starting by "S"
const sCompanies = tickers.filter((companyName) => companyName.startsWith('S')) 

Но если вы хотите сделать это с помощью для l oop, вы можете проверить это:

// Iterate through this list of tickers to build your new array:
const tickers = ["A", "SAS", "SADS", "ZUMZ"];

//console.log(tickers);

// Define your empty sCompanies array here:
const sCompanies = [];

// Write your loop here:
for (let i = 0; i < tickers.length; i++) {
  tickers[i].startsWith("S") && sCompanies.push(tickers[i]);
}

// Define sLength here:
const sLength = sCompanies.length;

/*
// These lines will log your new array and its length to the console:
*/
console.log(sCompanies);
console.log(sLength);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...