#javascript #arrays
#javascript #массивы
Вопрос:
Давайте предположим, что у меня есть 2 разных массива, в одном из которых все алфавиты от (A до Z) написаны заглавными буквами. И другой массив, куда я ввожу буквы из алфавитов, например: {"K","C","L"}
.
Я хочу извлечь указанные выше буквы из первого массива.
Например, если secondArr = [K,C,L]
тогда вывод был бы [A, B, D, E, F, G, H, I, J, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]
Вот что я пробовал:
<script>
window.onload = run;
function run() {
a = [];
for(i = 65; i <= 90; i ) {
a[a.length] = String.fromCharCode(i); // A-Z
}
b = [];
for(j = 70; j <= 75; j ) {
b[b.length] = String.fromCharCode(j); // F-K
}
if(a !== b) {
a - b;
}
}
</script>
Комментарии:
1. Что это за alfabeth ?
2. Чтобы вывести это, просто выполните
console.log(a)
и откройте консоль. Однако я предполагаю, что этоa - b
не делает того, что вы думаете, поскольку это массивы3. @evolutionxbox, что такое gonne , что такое exempal , witoute ? => прочитайте это вслух.
4. @Kaiido Это «пример» и «без», я думаю. celllaa95, должно быть, испытывает трудности с английским. Давайте просто поможем ему исправить орфографию вместо того, чтобы указывать на это 🙂
5. @suzo, извините, у меня ушло 10 секунд на написание этого комментария и 7 минут на исправление орфографии
Ответ №1:
Просто используйте map и filter, например :
var input = ["K", "C", "L"];
var output = Array(26).fill(0).map((x, i) => String.fromCharCode(i 65)).filter(x => input.indexOf(x) == -1);
console.log(output);
Ответ №2:
a = [];
b = [];
for(i = 65; i <= 90; i ) {
a[a.length] = String.fromCharCode(i); // A-Z
}
for(j = 70; j <= 75; j ) {
b[b.length] = String.fromCharCode(j); // F-K
}
a = a.filter(function(val) {
return b.indexOf(val) == -1;
});
Ответ №3:
Это то, что вам нужно.
a = [];
b = [];
c = [];
for(i = 65; i <= 90; i ) {
a.push(String.fromCharCode(i)); // A-Z
}
for(j = 70; j <= 75; j ) {
b.push(String.fromCharCode(j)); // F-K
}
//option 1, you can loop through like this
for (var k = 0; k < a.length; k ){
if(b.indexOf(a[k]) == -1 ){
c.push(a[k]);
}
}
console.log(c);
//option 2, you can use the filter function like so
c = a.filter(function(r){
return b.indexOf(r) == -1;
});
console.log(c)
//output will be [ 'A', 'B', 'C', 'D', 'E', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ]
Комментарии:
1. Спасибо! Не могли бы вы немного объяснить, что здесь происходит, чтобы я мог немного выучить. Я не разбираюсь в циклах, но что происходит в тесте «если»?
2.
if(b.indexOf(a[k]) == -1 )
Проверкаa[k]
вb
массиве. Возвращает индексa[k]
inb
, если он найден или-1
иным образом. Подробнее оindexOf
здесь MDN3. я 2, люди должны проголосовать за это, потому что это именно то, что мне было нужно
4. Думаю, теперь я это сделал. Извините, я действительно новичок в этом сообществе
5. Я рад, что это помогло вам.