Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запишите в новый массив элементы, значение которых начинается с цифры 1 или цифры 2. (https://javascript.ru/forum/misc/82898-zapishite-v-novyjj-massiv-ehlementy-znachenie-kotorykh-nachinaetsya-s-cifry-1-ili-cifry-2-a.html)

javascript888 31.07.2021 21:21

Запишите в новый массив элементы, значение которых начинается с цифры 1 или цифры 2.
 
Дан следующий объект:
let obj = { 1: 125, 2: 225, 3: 128, 4: 356, 5: 145, 6: 281, 7: 452,
};
Запишите в новый массив элементы, значение которых начинается с цифры 1 или цифры 2.
То есть у вас в результате получится вот такой массив:
let arr = [ 125, 225, 128, 145, 281,
];

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>Тег IMG</title>
</head>
<body>
<! -
-->


<script>
    let result = {};
    let obj = { 1: 125, 2: 225, 3: 128, 4: 356, 5: 145, 6: 281, 7: 452,    };


    for (let key in obj) {
        console.log(obj[key][0]);
        key = String(obj[key]);
        if(key[0]==1 || key[0]==2)
        {
            document.write(obj[key]);
        }
    }
    console.log(result);

</script>
</body>
</html>


Просьба не давать готовый код решения. Скажите как мне через консоль проверить чтоб был первый элемент в значении console.log(obj[key][0]);?

voraa 31.07.2021 22:09

console.log((''+obj[key])[0])

рони 01.08.2021 07:24

Цитата:

Сообщение от javascript888
вот такой массив:

Цитата:

Сообщение от javascript888
result = {};

:-?

javascript888 01.08.2021 08:19

Цитата:

Сообщение от voraa (Сообщение 539048)
console.log((''+obj[key])[0])

получилось. объясни пожалуйста почему именно так?

javascript888 01.08.2021 08:23

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>Тег IMG</title>
</head>
<body>
<! -
-->


<script>
    let result = {};
    let obj = { 1: 125, 2: 225, 3: 128, 4: 356, 5: 145, 6: 281, 7: 452,    };


    for (let key in obj) {
        key = String(obj[key]);
        if((''+obj[key])[0])==1 || (''+obj[key])[0])==2)
        {
            document.write(obj[key]);
        }
    }
    console.log(result);

</script>
</body>
</html>
не работает. Просьба не давать готовый код . Указать ошибку

voraa 01.08.2021 08:42

Цитата:

Сообщение от javascript888
не работает. Просьба не давать готовый код . Указать ошибку

Изучите, как записываются комментарии в HTML
Разберитесь со скобками в if.

Цитата:

Сообщение от javascript888
объясни пожалуйста почему именно так?

obj[key] - число
''+obj[key] - переводим это число в строку
(''+obj[key])[0] - берем первый символ строки

voraa 01.08.2021 08:46

Сами себе объясните, что у вас делает key = String(obj[key]);

javascript888 01.08.2021 09:18

Цитата:

Сообщение от voraa (Сообщение 539059)
Сами себе объясните, что у вас делает key = String(obj[key]);

Я перевожу цифру в строку

voraa 01.08.2021 11:17

Цитата:

Сообщение от javascript888
Я перевожу цифру в строку

Какую цифру и зачем?
for (let key in obj) {
В цикле key будут строками - '1', '2', '3'....
obj[key] - числа - 125, 255, 128...
Вы переводите их в строки, т.е key будет '125' , '255'...
А потом в if берете obj[key] - это что будет?

И вообще, научитесь пользоваться средствами разработчика, которые есть в любом браузере. Там есть и отладчик. Тогда меньше будет глупых вопросов по поводу глупых ошибок.

javascript888 01.08.2021 11:29

как в этом примере мне использовать отладчик?


Часовой пояс GMT +3, время: 13:03.