Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #34312

Re: get average height in an object

From Joao Rodrigues <groups_jr-1@yahoo.com>
Newsgroups comp.lang.javascript
Subject Re: get average height in an object
Date 2017-11-12 06:04 -0200
Organization Aioe.org NNTP Server
Message-ID <ou8vaq$1l44$1@gioia.aioe.org> (permalink)
References <d68354d4-3603-4201-9c12-a51977c9cf9b@googlegroups.com>

Show all headers | View raw


JRough wrote:
> This seems like it should be easy enough but I don't get any error messages in the console.  I used jslint and it objects to the console.log lines 

This happens because "console" is a browser (and Node.js) feature. 
However, you may use the /*global*/ directive to "hide" the error in 
JSLint [1]. For instance:

/*global console */

As a side note there are better JS linters such as ESLint and JSHint.

> and it says it needs a semi colon after the data  object?  

Sure does. A semicolon is required in the end of a statement.

const data = { /* ... */ };

> In any case, maybe I did something wrong with the second for loop where I am only trying to collect the height property.  I am not exactly sure how to get the height property from the data object.  The result of running this script is undefined.

The result

> 
> const data = {
> 	"Matt" : {  "height" : 174, "weight": 69 },
> 	"Jason" : { "height" : 190, "weight": 103 }
> }

It lacks a semicolon after the "}".

> function calcAvgHeight(data) {
> "use strict";
> var count = '';
> var avgHeight = '';
> var result = [];
> for (var key in data){
> 	if (!data.hasOwnProperty(key)){
> 		return;
> 	}
> 	var obj = data[key];
> 	for (var height in obj){
> 		if(!obj.hasOwnProperty.height){
> 			return;
> 		}
> 	
> 	  			console.log(obj[height]);
>        			result.push(obj[height]);
>        			count += 1;
>        			avgHeight = result/count;
>        			console.log(avgHeight);
>            			return avgHeight ;
>      }
>     }
> }
> calcAvgHeight(data);
> 

I've refactored the OP's code to:

const data = {
   "Matt" : {  "height" : 174, "weight": 69 },
   "Jason" : { "height" : 190, "weight": 103 }
};

function calcAvgHeight(data) {
   var count = 0, sumHeight = 0;
   for (var key in data) {
     sumHeight += data[key].height;
     count += 1;
   }
   return sumHeight/count;
}

console.log(calcAvgHeight(data)); // 182

You don't really need to check for data.hasOwnProperty(key) in this 
case, because data is a simple dictionary-like object [2].

[1] <http://www.jslint.com/help.html>
[2] 
<https://stackoverflow.com/questions/41539249/when-is-hasownproperty-not-required>

-- 
Joao Rodrigues

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

get average height in an object JRough <janis.rough@gmail.com> - 2017-11-11 14:57 -0800
  Re: get average height in an object Joao Rodrigues <groups_jr-1@yahoo.com> - 2017-11-12 06:04 -0200
    Re: get average height in an object Joao Rodrigues <groups_jr-1@yahoo.com> - 2017-11-12 06:49 -0200
    Re: get average height in an object John G Harris <niam@jghnorth.org.uk.invalid> - 2017-11-12 13:39 +0000
    Re: get average height in an object Joao Rodrigues <groups_jr-1@yahoo.com> - 2017-11-12 13:40 -0200
      Re: get average height in an object JRough <janis.rough@gmail.com> - 2017-11-13 12:06 -0800
      Re: get average height in an object Joao Rodrigues <groups_jr-1@yahoo.com> - 2017-11-15 13:14 -0200
        Re: get average height in an object "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2017-11-15 22:21 +0100
          Re: get average height in an object "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2017-11-15 22:57 +0100
            Re: get average height in an object Joao Rodrigues <groups_jr-1@yahoo.com> - 2017-11-16 02:46 -0200
              Re: get average height in an object "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2017-11-17 13:06 +0100
    Re: get average height in an object Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-11-12 18:24 +0100
      Re: get average height in an object Joao Rodrigues <groups_jr-1@yahoo.com> - 2017-11-13 00:26 -0200
        Re: get average height in an object Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-11-13 03:42 +0100
          Re: get average height in an object Joao Rodrigues <groups_jr-1@yahoo.com> - 2017-11-13 01:23 -0200
            Re: get average height in an object Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-11-13 14:16 +0100
              Re: get average height in an object Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2017-11-13 14:20 -0300
                Dictionary-like objects (was: get average height in an object) Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-11-13 19:56 +0100
                Re: Dictionary-like objects Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2017-11-13 20:26 -0200
                Re: Dictionary-like objects Julio Di Egidio <julio@diegidio.name> - 2017-11-13 15:48 -0800
                Re: Dictionary-like objects Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-11-15 02:55 +0100
                Re: Dictionary-like objects Joao Rodrigues <groups_jr-1@yahoo.com> - 2017-11-15 12:30 -0200
                Re: Dictionary-like objects John G Harris <niam@jghnorth.org.uk.invalid> - 2017-11-15 15:59 +0000
        Re: get average height in an object JRough <janis.rough@gmail.com> - 2017-11-13 12:08 -0800
      Re: get average height in an object John G Harris <niam@jghnorth.org.uk.invalid> - 2017-11-13 10:17 +0000
      Re: get average height in an object JRough <janis.rough@gmail.com> - 2017-11-13 12:07 -0800
  Re: get average height in an object "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2017-11-12 11:00 +0100
    Re: get average height in an object "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2017-11-12 11:15 +0100
    Re: get average height in an object JRough <janis.rough@gmail.com> - 2017-11-13 12:28 -0800

csiph-web