4 回答
TA贡献1805条经验 获得超10个赞
这将遍历 tickers 数组,如果它以“S”开头,则将其添加到 sCompanies 数组。
tickers.forEach(function (item, index, array) {
if (item.startsWith('S')) {
sCompanies.push(item);
}
})
TA贡献1815条经验 获得超13个赞
我还得到了以下代码作为模型解决方案,我理解使用这种格式的原因是因为我想针对首字母以外的其他内容:
if(tickers[i][0] == 'S')
然后我可以使用 [1] 而不是 [0] 来定位第二个字母。
TA贡献1804条经验 获得超7个赞
在你的循环中它会是这样的:
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...ofwhich 来循环数组。
for (const ticker of tickers) {
if (ticker.startsWith('S')) {
sCompanies.push(ticker);
}
}
或者你可以像上面的答案一样做一个 oneliner。
TA贡献1780条经验 获得超3个赞
你为什么不像这样使用过滤器功能呢?
// Only return companies starting by "S"
const sCompanies = tickers.filter((companyName) => companyName.startsWith('S'))
但是如果你想用 for 循环来做,你可以检查一下:
// 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);
添加回答
举报