1

Тема: Масиви обєктів

Привіт!
Є масив обєктів:

const users = [

  {
    firstName: undefined,
    lastName: 'Holy',
    fullName: 'Jack Holy',
  },
  {firstName: undefined,
    lastName: 'House',
    fullName: 'Gregory House',}

];

Мені потрібно поміняти undefinedна імена .
Код нижче не працює. Дякую за відповідь)

function restoreNames(users) {
  for(let i = 0; i<users.lenght; i++){

   if (users==undefined) {

     users.firstName =
      users.fullName.toString().split(' ')[0];


  }
}
}

2

Re: Масиви обєктів

Спробуйте увімкнути комп'ютер, запустити середовище виконання і тоді запустити свій код.
І наступного разу замість "не працює" пишіть конкретно, що відбувається. Якщо комп'ютер вимкнено - це теж "не працює".

3

Re: Масиви обєктів

Використовуйте "use strict", щоб інтерпретатор повідомляв про помилки. І відступи (форматування), у вас їх нема.

Подякували: koala1

4

Re: Масиви обєктів

Весь код :

'use strict';

const users = [
  
  {
    firstName: undefined,
    lastName: 'Holy',
    fullName: 'Jack Holy',
  },
  {firstName: undefined,
    lastName: 'House',
    fullName: 'Gregory House',}
  
];


function restoreNames(users) {
  for(let i = 0; i<users.lenght; i++){
     
   if (users==undefined) {
                 
     users.firstName =
      users.fullName.toString().split(' ');
         
  }
}
}

restoreNames(users)
console.log(users)

Нижче - вивід на консолі:

0:
firstName: undefined
fullName: "Jack Holy"
lastName: "Holy"
__proto__: Object
1:
firstName: undefined
fullName: "Gregory House"
lastName: "House"
__proto__: Object
length: 2
__proto__: Array(0)

Потрібно, щоб виводилось (тобто, замість undefined виводилась імя з поля fullName)

0:
firstName: [b]Jack[/b]
fullName: "Jack Holy"
lastName: "Holy"
__proto__: Object
1:
firstName: [b]Gregory[/b]
fullName: "Gregory House"
lastName: "House"
__proto__: Object
length: 2
__proto__: Array(0)

5

Re: Масиви обєктів

for(let i = 0; i<users.length; i++){ //а не lenght
 if (users[i].firstName==undefined) { //вам же лише firstName треба перевіряти?
   users[i].firstName = //а індекси за вас хто має ставити, Леся Українка?
     ну а тут вже що вам треба
Подякували: FakiNyan1

6

Re: Масиви обєктів

users.forEach(user => (user.firstName = user.firstName || `те, що вам треба`));
Подякували: koala1

7

Re: Масиви обєктів

Прогнав код через нод, а там strict не достатньо строгий, нода виконала код без повідомлень.

taras2409, ви запускаєте ваш код через Node.js ? Якщо так, то в директорії проекту виконайте команди:

npm init
npm install eslint

node_modules\.bin\eslint --init

? How would you like to use ESLint? ...
  To check syntax only
  To check syntax and find problems
> To check syntax, find problems, and enforce code style

? What type of modules does your project use? ...
  JavaScript modules (import/export)
  CommonJS (require/exports)
> None of these

? Which framework does your project use? ...
  React
  Vue.js
> None of these

? Does your project use TypeScript? » No

? Where does your code run? ...  (Press <space> to select, <a> to toggle all, <i> to invert selection)
√ Browser
√ Node

? How would you like to define a style for your project? ...
> Use a popular style guide
  Answer questions about your style
  Inspect your JavaScript file(s)

? Which style guide do you want to follow? ...
  Airbnb: https://github.com/airbnb/javascript
> Standard: https://github.com/standard/standard
  Google: https://github.com/google/eslint-config-google

? What format do you want your config file to be in? ...
  JavaScript
  YAML
> JSON

? Would you like to install them now with npm? » Yes

node_modules\.bin\eslint your_file.js

У вас там 20+ помилок.

Використовуйте

node_modules\.bin\eslint --fix your_file.js

, щоб автоматично виправити помилки, де це можливо.

Використовуйте eslint і виправляйте помилки перед кожною публікацією коду.

Подякували: taras24091