17th
Feb 2016
bitgrower
@bitgrower
Feb 17 2016 00:00
@declanPaz -- you had a similar problem earlier ... the solution then is the same solution here ...
Mafalda
@otmeek
Feb 17 2016 00:01
@bitgrower I will try there
bitgrower
@bitgrower
Feb 17 2016 00:02
@declanPaz -- hint: what are you passing to the function ...
Norman Dela Cruz
@dcnr
Feb 17 2016 00:03
@declanPaz shouldn't arrayAnalyzer be function?
function arrayAnalyzer() ...
// or
var arrayAnalyzer = function () ...
bitgrower
@bitgrower
Feb 17 2016 00:04
lol ... that, too, @dcnr ...
Vik
@vvang044
Feb 17 2016 00:07
hello all....can any explain this to me....how "myRandom = 11"

return Math.floor(Math.random() * (myMax - myMin + 1)) + myMin; // Change this line
}
// Change these values to test your function
var myRandom = randomRange(5, 15);
*anyone i meant
Moisés Man
@moigithub
Feb 17 2016 00:09
pick pen n paper.. n set a value to min and max... then replace those values on the variable :) n do calc
Vik
@vvang044
Feb 17 2016 00:10
Math.random() can be a number between 0 to .999999 correct?
John Roman
@jrroman
Feb 17 2016 00:10
how can i convert a unix time stamp for sunrise
"sys":{
"type":1,
"id":7758,
"message":0.2194,
"country":"India",
"sunrise":1410569741,
"sunset":1410614119
},
Moisés Man
@moigithub
Feb 17 2016 00:11

myMax = 15
myMin = 5
Math.random() (15 - 5 + 1)) + 5; //
Math.random()
(10 + 1)) + 5; //
Math.random() * (11)) + 5; //

Math.random() * (11)) -- generate a random num btw 0 and 10.999999
math.floor.. remove the decimals.. so u have a num bts 0 and 10
0..10 + 5 ... u get a num between 5 and 15

@vvang044 yes thats correct
bitgrower
@bitgrower
Feb 17 2016 00:12
@jrroman -- I'd only know that by googling it ...
Moisés Man
@moigithub
Feb 17 2016 00:12
@jrroman
var myDate = new Date(miliseconds);
bitgrower
@bitgrower
Feb 17 2016 00:13
dang!!!!
bitgrower @bitgrower swipes for code snippets ...
Vik
@vvang044
Feb 17 2016 00:13
thank you @moigithub thats what i thought and i appreciate the explanation
CamperBot
@camperbot
Feb 17 2016 00:13
vvang044 sends brownie points to @moigithub :sparkles: :thumbsup: :sparkles:
:star: 628 | @moigithub | http://www.freecodecamp.com/moigithub
John Roman
@jrroman
Feb 17 2016 00:13
@bitgrower I just didnt know if there was a built in function for that
thats all
@moigithub thank you
CamperBot
@camperbot
Feb 17 2016 00:13
jrroman sends brownie points to @moigithub :sparkles: :thumbsup: :sparkles:
:star: 629 | @moigithub | http://www.freecodecamp.com/moigithub
bitgrower
@bitgrower
Feb 17 2016 00:13
ahh ... then that's the question you should ask!!! :)
John Roman
@jrroman
Feb 17 2016 00:14
:) haha i know it was very poorly worded
Moisés Man
@moigithub
Feb 17 2016 00:14
if that not give u the correct date.. probably u need to multiply by 1000 (some convertion formula)
John Roman
@jrroman
Feb 17 2016 00:14
yeah either way i will figure it out
thanks for the help guys
Jason
@J-Pitt
Feb 17 2016 00:35
Hey guys, I'm stuck on module 184, I'm not really sure what they're asking. I'm supposed to add "the" number to the end of the array, then remove the first element of the array? this is what I've got, any help would be appreciated.
function queue(arr, item) {
testArr.push(?);
testArr.shift(0);

return item;  // Change this line
}

// Test Setup
var testArr = [1,2,3,4,5];

// Display Code
console.log("Before: " + JSON.stringify(testArr));
console.log(queue(testArr, 6)); // Modify this line to test
console.log("After: " + JSON.stringify(testArr));
I'm not sure what number to push to the array
Norman Dela Cruz
@dcnr
Feb 17 2016 00:36
@J-Pitt
You're supposed to work on arr and not testArr and
1. Insert item to the end of arr
2. Remove the first item
3. Return that item
Jason
@J-Pitt
Feb 17 2016 00:37
ok thanks @dcnr ! I'll try that
CamperBot
@camperbot
Feb 17 2016 00:37
j-pitt sends brownie points to @dcnr :sparkles: :thumbsup: :sparkles:
:star: 637 | @dcnr | http://www.freecodecamp.com/dcnr
Davperino
@davidesamp
Feb 17 2016 00:42

Hi everyone I have a problem with Falsy Bouncer challenge, this is my code
'''
function bouncer(arr) {

return arr.filter(function(value){
return value !== null && value !== isNaN && value !== false && value !== 0 && value !== "" ;
});
}
'''
the challenge fail at this point
'''
bouncer([false, null, 0, NaN, undefined, ""]);
'''
the result is bouncer([false, null, 0, NaN, undefined, ""]);
Some suggestions?

Den McHenry
@denmch
Feb 17 2016 00:44
@davidesamp Hi David. Can you switch those apostrophes to back ticks? It's the top left key on the keyboard.
Nairuz.Abulhul
@nairuzabulhul
Feb 17 2016 00:46
@davidesamp it is easier to use filter with booelan parameter
Davperino
@davidesamp
Feb 17 2016 00:46
I have an italian keyboard sorry ....
Den McHenry
@denmch
Feb 17 2016 00:46
Ah, sorry.
So you have:
function bouncer(arr) {
return arr.filter(function(value){
return value !== null && value !== isNaN && value !== false && value !== 0 && value !== "" ;
});
}
Unfortunately I'm about to hit the road so I can't walk you through it.
Nairuz.Abulhul
@nairuzabulhul
Feb 17 2016 00:49
@denmch yeah you right. next time I would only give hints
Davperino
@davidesamp
Feb 17 2016 00:50
Ok I've resolved with The Boolean object as suggestion on the problem question ... thanks
Norman Dela Cruz
@dcnr
Feb 17 2016 00:51
@davidesamp hi the first null you are getting is NaN, the second is from undefined
Den McHenry
@denmch
Feb 17 2016 00:52
@davidesamp This is a problem that once you find the really elegant solution, it will probably seem so simple. But try to spend a little more time on thinking through what's really happening and how cool and useful it is.
Norman Dela Cruz
@dcnr
Feb 17 2016 00:52
@davidesamp you forgot to check for value !== undefinedand to check for NaN you will have to use either Number.isNaN or isNaN the former one is to check for number isNaN, since NaN is special in that it will return false for everything except NaN !== NaN
William
@apswak
Feb 17 2016 00:53
@davidesamp David I suggest to simplify things just add a simple function within your bouncer function that checks for "isTruthy"
function bouncer(arg) {
function isTruthy(arg){
return Boolean(arg);
}
//some code here
}
Davperino
@davidesamp
Feb 17 2016 00:53
@dcnr Ok bu I have resolved with a more elegant solution, with Boolean object (return Boolean(value) == true)
Norman Dela Cruz
@dcnr
Feb 17 2016 00:54
@davidesamp If that's the case, you can just do return arr.filter(Boolean);
@davidesamp because .filter needs a function, and since you're only using Boolean, rather than use it inside just pass the function along
William
@apswak
Feb 17 2016 00:57
Norman Dela Cruz
@dcnr
Feb 17 2016 00:57
thanks @kreitzo
CamperBot
@camperbot
Feb 17 2016 00:57
dcnr sends brownie points to @kreitzo :sparkles: :thumbsup: :sparkles:
:star: 211 | @kreitzo | http://www.freecodecamp.com/kreitzo
William
@apswak
Feb 17 2016 00:58
@dcnr Thanks. to you.
@unlimiworks
Feb 17 2016 00:58
Hello guys
Davperino
@davidesamp
Feb 17 2016 00:58
@dcnr This is my solution
'''
function bouncer(arr) {
// Don't show a false ID to this bouncer.
return arr.filter(function(value){
return Boolean(value) === true;
});
}
'''
sorry i don't find the right markdown :(
CamperBot
@camperbot
Feb 17 2016 00:58
:bulb: to format code use backticks!  more info
Davperino
@davidesamp
Feb 17 2016 00:59
thanks @camperbot
CamperBot
@camperbot
Feb 17 2016 00:59
davidesamp sends brownie points to @camperbot :sparkles: :thumbsup: :sparkles:
:star: 1200 | @camperbot | http://www.freecodecamp.com/camperbot
William
@apswak
Feb 17 2016 00:59
thanks @dcnr
CamperBot
@camperbot
Feb 17 2016 00:59
kreitzo sends brownie points to @dcnr :sparkles: :thumbsup: :sparkles:
:star: 638 | @dcnr | http://www.freecodecamp.com/dcnr
Norman Dela Cruz
@dcnr
Feb 17 2016 01:00
@davidesamp to use the md formatting you use backquotes it's the key above Tab, left of 1, and below Esc :D
haha you're welcome :P @kreitzo
William
@apswak
Feb 17 2016 01:01
Could someone tell me how I assign the array to "initialArray" and the remaining to targets?
function destroyer(arr) {
var initialArray = ???
var targets = ???
return arr;
}

destroyer([1, 2, 3, 1, 2, 3], 2, 3);
Norman Dela Cruz
@dcnr
Feb 17 2016 01:01
@kreitzo here's my shameless plug It's quite a read, but I hope you still do :P
@kreitzo I wrote it just for that damn bonfire lol
bitgrower
@bitgrower
Feb 17 2016 01:02
^^^^ @dcnr's shameless plug page is WELL worth reading ...
Davperino
@davidesamp
Feb 17 2016 01:02
this is my solution:
function bouncer(arr) {
// Don't show a false ID to this bouncer.
return arr.filter(function(value){
return Boolean(value) === true;
});
}
William
@apswak
Feb 17 2016 01:03
Norman Dela Cruz
@dcnr
Feb 17 2016 01:04
@davidesamp that's a good solution :D some things though, you don't have to do the === true part. .filter evaluates any value that you return as a Boolean value. So in saying that, you don't even have to do Boolean(value)! You can even do it like this
function bouncer(arr) {
// Don't show a false ID to this bouncer.
return arr.filter(function(value){
return value;
});
}
bitgrower
@bitgrower
Feb 17 2016 01:04
@kreitzo ... check out the Arguments Object page on MDN, which I believe is recommended in the "helpful hints" ... there's a line of code about 2 paragraphs down you can literally steal for your purposes ...
Norman Dela Cruz
@dcnr
Feb 17 2016 01:04
@davidesamp and any "falsy" value will be removed by filter
@bitgrower Oh yeah, I should link the MDN some people prefer those technical explanations
bitgrower
@bitgrower
Feb 17 2016 01:05
well ... it provides the line of code people need to take the next step -- after they realize that "arr" is not all the arguments ...
...and ... gets them in the habit of finding actual ANSWERS to problems in the documention (not unlike falsy bouncer)
Norman Dela Cruz
@dcnr
Feb 17 2016 01:07
@bitgrower oh so that's where you got your ternary bit!
bitgrower
@bitgrower
Feb 17 2016 01:07
yessir!
stole it directly from MDN ...
yepitsmandi
@yepitsmandi
Feb 17 2016 01:07
hey does anyone understand access multi dimensional arrays?
Norman Dela Cruz
@dcnr
Feb 17 2016 01:07
@bitgrower come think of it that's a really nice shortened version of my args snippet
bitgrower
@bitgrower
Feb 17 2016 01:07
then I sat around and tried to figure out what it did ... which I SORTA understand ... don't quite understand the apply(null, arguments) part ... but I'm getting there ...
Norman Dela Cruz
@dcnr
Feb 17 2016 01:07
thanks @bitgrower
CamperBot
@camperbot
Feb 17 2016 01:07
dcnr sends brownie points to @bitgrower :sparkles: :thumbsup: :sparkles:
:star: 546 | @bitgrower | http://www.freecodecamp.com/bitgrower
Norman Dela Cruz
@dcnr
Feb 17 2016 01:08
@bitgrower that's way better than what I use
const args = Array.apply(null, new Array(arguments.length));
for (let i = 0; i < arguments.length; ++i) {
args[i] = arguments[i];
}
William
@apswak
Feb 17 2016 01:09

nice read. thanks @dcnr @bitgrower .

btw @davidesamp even simpler if you want

function bouncer(arg) {
return arg.filter(Boolean);
}

bouncer(["a", "b", "c"]);
CamperBot
@camperbot
Feb 17 2016 01:09
kreitzo sends brownie points to @dcnr and @bitgrower and @davidesamp :sparkles: :thumbsup: :sparkles:
:warning: kreitzo already gave dcnr points
:star: 547 | @bitgrower | http://www.freecodecamp.com/bitgrower
:star: 269 | @davidesamp | http://www.freecodecamp.com/davidesamp
Norman Dela Cruz
@dcnr
Feb 17 2016 01:09
thanks @kreitzo
CamperBot
@camperbot
Feb 17 2016 01:09
dcnr sends brownie points to @kreitzo :sparkles: :thumbsup: :sparkles:
:warning: dcnr already gave kreitzo points
bitgrower
@bitgrower
Feb 17 2016 01:09
yep -- definitely simplifies that ... @dcnr ... :)
yepitsmandi
@yepitsmandi
Feb 17 2016 01:09
// Setup
var myArray = [[1,2,3], [4,5,6], [7,8,9], [[10,11,12], 13, 14]];

// Only change code below this line.
var myData = myArray[0][0];
what the heck does this mean and how do I make it equal 8
bitgrower
@bitgrower
Feb 17 2016 01:10
thanks @kreitzo @dcnr
CamperBot
@camperbot
Feb 17 2016 01:10
bitgrower sends brownie points to @kreitzo and @dcnr :sparkles: :thumbsup: :sparkles:
:star: 212 | @kreitzo | http://www.freecodecamp.com/kreitzo
:star: 639 | @dcnr | http://www.freecodecamp.com/dcnr
Norman Dela Cruz
@dcnr
Feb 17 2016 01:10
@yepitsmandi the trick is to go about it step by step
@yepitsmandi first you'll have to find the sub array with the element you want, what index is it?
@yepitsmandi and once you got that, you can then go to your second brackets, and that's the index of the value you wanted in your sub array
yepitsmandi
@yepitsmandi
Feb 17 2016 01:11
@dcnr i'm what index? i'm not quite sure I understand your question. this is so embarrassing
Norman Dela Cruz
@dcnr
Feb 17 2016 01:12
@yepitsmandi ah the index is the position of the element in your array, it is how you access the array
array = ["the", "quick", "brown", "fox"];
index      0       1        2       3
bitgrower
@bitgrower
Feb 17 2016 01:13
thanks to @blauelf comes this succinct piece of advice ... :
1. When going for algorithms, carefully read the description, read the test cases (these might provide further hints), and try to understand how you would do this by yourself, without a computer, maybe using pen and paper. And try to form instructions that anybody could follow to perform the task, then translate those to computer code.
CamperBot
@camperbot
Feb 17 2016 01:13
bitgrower sends brownie points to @blauelf :sparkles: :thumbsup: :sparkles:
:star: 1212 | @blauelf | http://www.freecodecamp.com/blauelf
Norman Dela Cruz
@dcnr
Feb 17 2016 01:13
@yepitsmandi so if I want quickI would have to do
array[1];
yepitsmandi
@yepitsmandi
Feb 17 2016 01:13
@dcnr so for the first one it is 0 because nothing is inside of it?
Norman Dela Cruz
@dcnr
Feb 17 2016 01:13
@yepitsmandi ah no, it's just how arrays work, they start from 0 rather than 1
bitgrower
@bitgrower
Feb 17 2016 01:14
@yepitsmandi if nothing was inside of it, it wouldn't be 0, it would be "undefined" ...
in code ... things are numbered starting with 0, usually ...
Norman Dela Cruz
@dcnr
Feb 17 2016 01:14
@yepitsmandi another way to think about it is, the index is how many values before the value you wanted. So in my example, fox is array[3] because there are 3 values before it
bitgrower
@bitgrower
Feb 17 2016 01:15

thanks to @blauelf comes this succinct piece of advice ... :
When going for algorithms, carefully read the description, read the test cases (these might provide further hints), and try to understand how you would do this by yourself, without a computer, maybe using pen and paper. And try to form instructions that anybody could follow to perform the task, then translate those to computer code.

Let's try this again ...

CamperBot
@camperbot
Feb 17 2016 01:15
bitgrower sends brownie points to @blauelf :sparkles: :thumbsup: :sparkles:
:warning: bitgrower already gave blauelf points
Norman Dela Cruz
@dcnr
Feb 17 2016 01:15
the, quick, and brown
that's not really the case, but another way to think about it
yepitsmandi
@yepitsmandi
Feb 17 2016 01:17
I see @dcnr
i get that part, but where does the second bracket come from?
Norman Dela Cruz
@dcnr
Feb 17 2016 01:21
@yepitsmandi let's see, I'll use your example hold on
William
@apswak
Feb 17 2016 01:21
Still having trouble assigning the rest of the args, any tips/help?
function destroyer(arr) {
var initialArray = arguments[0];
var targets = ???;
return targets;
}

destroyer([1, 2, 3, 1, 2, 3], 2, 3);
bitgrower
@bitgrower
Feb 17 2016 01:22
@kreitzo -- did you read the Arguments Object page in MDN ?
yepitsmandi
@yepitsmandi
Feb 17 2016 01:22
okay
Norman Dela Cruz
@dcnr
Feb 17 2016 01:22
@yepitsmandi
var myArray = [[1,2,3], [4,5,6], [7,8,9], [[10,11,12], 13, 14]];
index             0        1        2               3

myArray[3] = [[10,11,12], 13, 14]
index             0        1   2

myArray[3][0] = [10, 11, 12]
index             0   1   2

myArray[3][0][1] = 11
@yepitsmandi the "index" is the "position of the value/element"
@yepitsmandi and it always starts with 0, instead of 1
William
@apswak
Feb 17 2016 01:23
@bitgrower yup
bitgrower
@bitgrower
Feb 17 2016 01:24
there is literally a line on that page which will provide you with the means to do what you asked about ...
yepitsmandi
@yepitsmandi
Feb 17 2016 01:24
hmmm @dcnr i'm going to try out something with what you wrote and i'll tell you if i have a lightbulb moment. thanks!
CamperBot
@camperbot
Feb 17 2016 01:24
yepitsmandi sends brownie points to @dcnr :sparkles: :thumbsup: :sparkles:
:star: 640 | @dcnr | http://www.freecodecamp.com/dcnr
William
@apswak
Feb 17 2016 01:24
@bitgrower found it, ty
bitgrower
@bitgrower
Feb 17 2016 01:25
ahhh ty ... I dunno if @camperbot understands that thanks ... LOL ... looks like not ...
CamperBot
@camperbot
Feb 17 2016 01:25
bitgrower sends brownie points to @camperbot :sparkles: :thumbsup: :sparkles:
:star: 1201 | @camperbot | http://www.freecodecamp.com/camperbot
yepitsmandi
@yepitsmandi
Feb 17 2016 01:35
//sooooo
myArray[2] = [[7, 8, 9], [10, 11, 12], 13]
index                       0                  1               2
myArray[2][0] = [7, 8, 9]
index                        0  1  2
my Array[2][0][1] = 8
Norman Dela Cruz
@dcnr
Feb 17 2016 01:37
@yepitsmandi aah fro mthe original array
@yepitsmandi myArray[2] is just [7, 8, 9] :D
yepitsmandi
@yepitsmandi
Feb 17 2016 01:38
@dcnr oooh
@dcnr i thought i was going somewhere lol.
Norman Dela Cruz
@dcnr
Feb 17 2016 01:39
@yepitsmandi you're close! :D hold on I'll put in another visualization
yepitsmandi
@yepitsmandi
Feb 17 2016 01:40
okay haha :)
William
@apswak
Feb 17 2016 01:43
Lol at how TERRIBLE my code is. cant believe it worked
function destroyer(arr) {
//change arguments into array
var array = (arguments.length === 1?[arguments[0]]:Array.apply(null, arguments));
var arrayCopy = array;
var initialArray = arrayCopy.shift();
var targets = arrayCopy;
var newArray = [];

for(var i = 0; i < initialArray.length; i++){
if(initialArray[i] != targets[0] && initialArray[i] != targets[1] && initialArray[i] != targets[2]){
newArray.push(initialArray[i]);
}
}
return newArray;
}

destroyer([1, 2, 3, 1, 2, 3], 2, 3);
pngwn
@pngwn
Feb 17 2016 01:44
if it works it isn't terrible ;p
William
@apswak
Feb 17 2016 01:44
@peterallenio bet the best answer is a two liner ;P
Norman Dela Cruz
@dcnr
Feb 17 2016 01:44
@yepitsmandi
I dunno if this makes it easier to understand or what but lol
myArray = [
[1,2,3],          // myArray[0]
[4,5,6],          // myArray[1]
[7,8,9],          // myArray[2]
[                 // myArray[3][0] the entire array of [10,11,12], 13, 14]
[10,            //     myArray[3][0][0]
11,            //     myArray[3][0][1]
12],            //     myArray[3][0][2]
13,             // myArray[3][1]
14              // myArray[3][2]
]
]
Alex N.
@N0bl3
Feb 17 2016 01:46
hi!
yepitsmandi
@yepitsmandi
Feb 17 2016 01:48
hi #N0bl3
@N0bl3
@dcnr i kind of see it now
kiel barry
@kielbarry
Feb 17 2016 01:48
@N0bl3
$(document).ready(function(){$(".footerLight").click(function(){
$(this).addClass(".BoL"); });$('.footerDark').click(function(){
$(this).addClass(".LoB"); )}; }); yepitsmandi @yepitsmandi Feb 17 2016 01:49 buti don't see why myArray[3][0] includes 13 and 14 kiel barry @kielbarry Feb 17 2016 01:49 .footerLight { } .footerDark { } .LoB { color:white; background-color:black; } .BoL { color:black; background-color:white; } <a href="#1" class="footerLight">make me light</a></div> <div class="footerDark"><a href="#2">make me dark</a></div> Alex N. @N0bl3 Feb 17 2016 01:50 @declanPaz what do you want to know? kiel barry @kielbarry Feb 17 2016 01:50 @N0bl3 it's not working in jsfiddle pngwn @pngwn Feb 17 2016 01:50 You don't need the dot when you're adding classes, just the clann name class* kiel barry @kielbarry Feb 17 2016 01:51 so -$(this).addClass("LoB");
pngwn
@pngwn
Feb 17 2016 01:51
yes
Alex N.
@N0bl3
Feb 17 2016 01:51
@declanPaz yes
kiel barry
@kielbarry
Feb 17 2016 01:52
ok, changed that, still don't work
pngwn
@pngwn
Feb 17 2016 01:52
Norman Dela Cruz
@dcnr
Feb 17 2016 01:53
@yepitsmandi
Here's mega indexing!
myArray = [
[            // myArray[0]
1,         // myArray[0][0]
2,         // myArray[0][1]
3          // myArray[0][2]
],

[            // myArray[1]
4,         // myArray[1][0]
5,         // myArray[1][1]
6          // myArray[1][2]
],

[            // myArray[2]
7,         // myArray[2][0]
8,         // myArray[2][1]
9          // myArray[2][2]
],

[            // myArray[3][0]
[
10,      // myArray[3][0][0]
11,      // myArray[3][0][1]
12       // myArray[3][0][2]
],
13,        // myArray[3][1]
14         // myArray[3][2]
]
];
Alex N.
@N0bl3
Feb 17 2016 01:53
@declanPaz are the classes set correctly on the footers?
kiel barry
@kielbarry
Feb 17 2016 01:53
that work?
yepitsmandi
@yepitsmandi
Feb 17 2016 01:54
@dcnr OHHHHHHH
// Setup
var myArray = [[1,2,3], [4,5,6], [7,8,9], [[10,11,12], 13, 14]];

// Only change code below this line.
var myData = myArray[0][0];
myArray[2] = [7, 8, 9];
myArray[2][1] = 8;
Norman Dela Cruz
@dcnr
Feb 17 2016 01:54
@yepitsmandi it's just like drilling down, starting from 0 again every start of the array :D
kiel barry
@kielbarry
Feb 17 2016 01:54
@N0bl3 yes i believe they are - tried assigning them on <a> and <div>
Norman Dela Cruz
@dcnr
Feb 17 2016 01:55
@yepitsmandi I think you got it now :D
yepitsmandi
@yepitsmandi
Feb 17 2016 01:55
i actually have myArray2 = 8; before you sent that
the goal is for it to equal 8
but it still says its wrong
Norman Dela Cruz
@dcnr
Feb 17 2016 01:55
ooh..
@yepitsmandi just think of it as individual [] is the value/element then you start indexing again with the second []
since it's another array inside
kiel barry
@kielbarry
Feb 17 2016 01:56
Jason
@carpediem1213
Feb 17 2016 01:57
function rot13(str) { // LBH QVQ VG!
var letter;
var encryptedLetter
var phrase;

for (var i = 0; i < str.length; i++) {
letter = str.charCodeAt(i);
if (letter >= 65+13) {
encryptedLetter = letter - 13;
}
else if (letter < 78 && letter > 65) {
encryptedLetter = letter + 13;
}
else if (letter < 65) {
encryptedLetter = letter;
}

console.log(JSON.stringify(letter + " " + encryptedLetter));
console.log(JSON.stringify(String.fromCharCode(encryptedLetter)));
phrase =+ String.fromCharCode(encryptedLetter);
}
return phrase;
}

// Change the inputs below to test
rot13("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.");
Hello all, I'm trying to get the phrase to come together using the for loop. I seem to be missing something. Any thoughts?
yepitsmandi
@yepitsmandi
Feb 17 2016 01:58
@dcnr thanks again SOO MUCH :)
CamperBot
@camperbot
Feb 17 2016 01:58
yepitsmandi sends brownie points to @dcnr :sparkles: :thumbsup: :sparkles:
:warning: yepitsmandi already gave dcnr points
Alex N.
@N0bl3
Feb 17 2016 01:59
@declanPaz you need to put jQuery in your jsfiddle
pngwn
@pngwn
Feb 17 2016 02:01
yeah I did wonder if something was missing
Norman Dela Cruz
@dcnr
Feb 17 2016 02:11
you're welcome and thank you too! @yepitsmandi you just practice this nesting stuff, you'll be using it quite a lot!
CamperBot
@camperbot
Feb 17 2016 02:11
dcnr sends brownie points to @yepitsmandi :sparkles: :thumbsup: :sparkles:
:star: 201 | @yepitsmandi | http://www.freecodecamp.com/yepitsmandi
Theodore P.
@Ierofantis
Feb 17 2016 02:13

// Example
var ourStr = "I come first. ";
ourStr += "I come second.";

// Only change code below this line

var myStr="This is the first sentence.";
myStr+= "This is the second sentence.";

what is wrong whith my code?
I cannot understand where my concatenate is not ok
yepitsmandi
@yepitsmandi
Feb 17 2016 02:14
@dcnr i will! you really helped me to understand the pattern and the multiple array idea. the answer was indeed 2 i didn't think to replace 2 and 1 with the 0s
pngwn
@pngwn
Feb 17 2016 02:14
@Ierofantis do you need a space before the quote in the first string?
before the second quotation mark
yepitsmandi
@yepitsmandi
Feb 17 2016 02:15
@Ierofantis type  and then hit shift + enter and copy and paste your code into the space between. it will make it easier to read your code
Norman Dela Cruz
@dcnr
Feb 17 2016 02:15
This message was deleted
@carpediem1213 phrase =+ is wrong :P
Theodore P.
@Ierofantis
Feb 17 2016 02:16
ok lets try
Norman Dela Cruz
@dcnr
Feb 17 2016 02:16
@camperbot also, initialize your phrase to an empty string or you will have undefined as first value
DAMN @mention COMPLETION
@carpediem1213 also, initialize your phrase to an empty string or you will have undefined as first value
yepitsmandi
@yepitsmandi
Feb 17 2016 02:17
LOL
Norman Dela Cruz
@dcnr
Feb 17 2016 02:17
ahaha
Feb 17 2016 02:19
need help for Profile Lookup excercise.
var contacts = [
{
"firstName": "Akira",
"lastName": "Laine",
"number": "0543236543",
"likes": ["Pizza", "Coding", "Brownie Points"]
},
{
"firstName": "Harry",
"lastName": "Potter",
"number": "0994372684",
"likes": ["Hogwarts", "Magic", "Hagrid"]
},
{
"firstName": "Sherlock",
"lastName": "Holmes",
"number": "0487345643",
"likes": ["Intriguing Cases", "Violin"]
},
{
"firstName": "Kristian",
"lastName": "Vos",
"number": "unknown",
"likes": ["Javascript", "Gaming", "Foxes"]
}
];

A lookUp function that takes firstName and a property (prop) as arguments has been pre-written for you.

The function should check if firstName is an actual contact's firstName and the given property (prop) is a property of that contact.

If both are true, then return the "value" of that property.

If firstName does not correspond to any contacts then return "No such contact"

If prop does not correspond to any valid properties then return "No such property"

Jason
@carpediem1213
Feb 17 2016 02:19
@dcnr Ah! Oops....
Feb 17 2016 02:20
function lookUp(firstName, prop){
// Only change code below this line

// Only change code above this line
}
Theodore P.
@Ierofantis
Feb 17 2016 02:21
CamperBot
@camperbot
Feb 17 2016 02:21
ierofantis sends brownie points to @peterallenio :sparkles: :thumbsup: :sparkles:
:star: 283 | @peterallenio | http://www.freecodecamp.com/peterallenio
Feb 17 2016 02:21
function lookUp(firstName, prop){
// Only change code below this line
var i=0;
while(contacts[i]){
if(contacts[i]["firstName"] == firstName && contacts[i][prop]){
return contacts[i][prop];
}
else if( !contacts[i+1] && contacts[i]["firstName"] == firstName){
return "No such contact";
}
i++;
}
// Only change code above this line
}
Here is how my lookUp fucntions looks like
pngwn
@pngwn
Feb 17 2016 02:22
@Ierofantis Yes, always need to double check when concatenating strings that your whitespace is correct because it will always print exactly what you tell it to.
Vick003
@Vick003
Feb 17 2016 02:24
can some help me with sum all odd fibonacci?
Theodore P.
@Ierofantis
Feb 17 2016 02:24
@peterallenio Ok I will have It in mind. I am new in Javacript and I didn't know that it is so case-sensitive language.
Jason
@carpediem1213
Feb 17 2016 02:24
@dcnr Thanks! That did it.
CamperBot
@camperbot
Feb 17 2016 02:24
carpediem1213 sends brownie points to @dcnr :sparkles: :thumbsup: :sparkles:
:star: 641 | @dcnr | http://www.freecodecamp.com/dcnr
Vick003
@Vick003
Feb 17 2016 02:26
If anyone can give me hints as to what's wrong with this code, I'd greatly appreciate it.
function sumFibs(num) {
var prevNum = 1,
currentNum = 1,
nextNum,
counter = 2,
total = 2;

while(counter < num) {
nextNum = prevNum + currentNum;
if( nextNum % 2 != 0){
total += nextNum;
}
prevNum = currentNum;
currentNum = nextNum;
counter++;
}
}
Ramins01
@Ramins01
Feb 17 2016 02:28
@Vick003 I think you're missing semicolons for the variables and each variable needs to be established as such (e.g. var currentNum, var nextNum) unless this is some cheat in JavaScript I haven't learned yet :P
Norman Dela Cruz
@dcnr
Feb 17 2016 02:29
@Ramins01 you can declare multiple variables like that, separated by commas :D
Vick003
@Vick003
Feb 17 2016 02:30
@Ramins01 Ah yeah, u can do variables like that when there are a bunch of them.
what @dcnr said
pngwn
@pngwn
Feb 17 2016 02:30
@dcnr You can miss off subsequent 'var' keyword if you separate your variables if you separate with a comma rather than ending the expression with a semicolon.
Norman Dela Cruz
@dcnr
Feb 17 2016 02:30
@Ramins01 you see it most often in for loops
pngwn
@pngwn
Feb 17 2016 02:30
and apparently i cant type
Norman Dela Cruz
@dcnr
Feb 17 2016 02:30
@peterallenio I personally don't like that style, I like to declare them separately
pngwn
@pngwn
Feb 17 2016 02:31
i like it when i want to declare them but not initialise them. but if i'm assigning a value i use the conventional method
Ramins01
@Ramins01
Feb 17 2016 02:31
How about that. Thanks @Vick003 and @dcnr
CamperBot
@camperbot
Feb 17 2016 02:31
ramins01 sends brownie points to @vick003 and @dcnr :sparkles: :thumbsup: :sparkles:
:star: 35 | @vick003 | http://www.freecodecamp.com/vick003
:star: 642 | @dcnr | http://www.freecodecamp.com/dcnr
Alex Evans
@alex-evans
Feb 17 2016 02:32

In the wiki answer for "No repeats please" challenge it has the following call to a function that I think I get what it is trying to do but need someone to talk me through it:

swap(int % 2 ? 0 : i, int - 1);

It is the same as the following correct:

if(int % 2) {
return 0;
} else {
return int - 1;
}

And if that is the case then when is int % 2 ever false? When it doesn't equal 0? As in odd numbers or is it protecting for when int gets below 0 which it seems like there are easier ways to check that?

pngwn
@pngwn
Feb 17 2016 02:32
var one, two, three; etc.
Alex Evans
@alex-evans
Feb 17 2016 02:34
Sorry I wrote that wrong.
int % 2 ? 0 : i
is the same as
if(int % 2) {
return 0;
} else {
return i;
}
Norman Dela Cruz
@dcnr
Feb 17 2016 02:35
@alcatrats you can't have negative remainders, so it's just saying that if the remainder is 0 (even numbers), do i
Vick003
@Vick003
Feb 17 2016 02:36
@alcatrats I read that as a terneray statement
Alex Evans
@alex-evans
Feb 17 2016 02:36
I guess I don't follow that first piece. if(int % 2)... Would 3 % 2 still return a true value of 1 which would still pass the first check returning 0? I know I"m reading it wrong but just not making sense to me.
Norman Dela Cruz
@dcnr
Feb 17 2016 02:36
@alcatrats yes you're right, 3 % 2 is 1 which is true which in this case will return 0
Vick003
@Vick003
Feb 17 2016 02:36
@alcatrats anything greater than 0 would probably be truthy
Alex Evans
@alex-evans
Feb 17 2016 02:37
So why make it complicated like that and not just say if int > 0?
Jason
@carpediem1213
Feb 17 2016 02:37
I've finished the basic algorithms. Now I am up to the Random Quote Generator. I've looked at the sample project, but I'm not sure I have the skill set to accomplish this one yet. Which lessons/challenges should I review to be prepared for these intermediate front end projects?
Vick003
@Vick003
Feb 17 2016 02:37
it's the remainder @alcatrats
int % 2 will give u a remainder
Norman Dela Cruz
@dcnr
Feb 17 2016 02:38
@alcatrats without seeing the whole code, I interpret it as "If number is Odd, return 0, otherwise return the even number"
@alcatrats so you can't just say int > 0, coz even numbers are > 0
@alcatrats or whatever i is lol
Alex Evans
@alex-evans
Feb 17 2016 02:39
Ahhh 2 % 2 would return 0 which would fail the if statement?
pngwn
@pngwn
Feb 17 2016 02:39
for even numbers is should read if (int % 2 === 0) as it stands there is no condition
you cant just pass an operation into an iff statement it has to be able to return true or false
Norman Dela Cruz
@dcnr
Feb 17 2016 02:40
@peterallenio yes you can it will evaluate the value as a boolean
Vick003
@Vick003
Feb 17 2016 02:40
truthy values or falsy
pngwn
@pngwn
Feb 17 2016 02:40
well yes it will, but it won't give the desired result
Vick003
@Vick003
Feb 17 2016 02:40
If anyone can give me hints as to what's wrong with this code, I'd greatly appreciate it.
function sumFibs(num) {
var prevNum = 1,
currentNum = 1,
nextNum,
counter = 2,
total = 2;

while(counter < num) {
nextNum = prevNum + currentNum;
if( nextNum % 2 != 0){
total += nextNum;
}
prevNum = currentNum;
currentNum = nextNum;
counter++;
}
}
Norman Dela Cruz
@dcnr
Feb 17 2016 02:41
@peterallenio that would depend on the case though, and how you structure the conditional statements based on the result
@peterallenio int % 2 ? Odd : Even and it always be so assuming int > 0
wait lol i think i switched it
Alex Evans
@alex-evans
Feb 17 2016 02:42
@dcnr wouldn't that be flipped if I'm understanding it
Norman Dela Cruz
@dcnr
Feb 17 2016 02:42
yeah I flipped it lol
there
Alex Evans
@alex-evans
Feb 17 2016 02:43
Nice. Thanks @dcnr and thanks @Vick003. That makes more sense now.
CamperBot
@camperbot
Feb 17 2016 02:43
alcatrats sends brownie points to @dcnr and @vick003 :sparkles: :thumbsup: :sparkles:
:star: 36 | @vick003 | http://www.freecodecamp.com/vick003
:star: 643 | @dcnr | http://www.freecodecamp.com/dcnr
pngwn
@pngwn
Feb 17 2016 02:44
i still don't see why you would do it, even though you can, adding an explicity conditional rather than dealing with a falsy value is far easier to read and makes far more sense at a glance
it's good to know which values are falsey/truthy but relying on it for conditionals would be a mistake in my opinion
Norman Dela Cruz
@dcnr
Feb 17 2016 02:45
@peterallenio I agree with you on that part, sometimes it helps to be more explicit
pngwn
@pngwn
Feb 17 2016 02:46
I'd go so far as to say you should always be explicit unless you have a very good reason not to, avoids all kinds of problems
Norman Dela Cruz
@dcnr
Feb 17 2016 02:46
but that's the case with ternary anyway, over usage gets silly sometimes
Alex Evans
@alex-evans
Feb 17 2016 02:46
I agree with that @peterallenio
pngwn
@pngwn
Feb 17 2016 02:46
should check the 'Zen of Python'
quite fun, also good guidelines :P
Alex Evans
@alex-evans
Feb 17 2016 02:47
I had to stare at the code for awhile and ask the question here on what it was doing before finally understanding it. When I can always quickly tell what if (int % 2 === 0) is trying to do.
Norman Dela Cruz
@dcnr
Feb 17 2016 02:48
@peterallenio but but, what if you want stupid but working functions?!
function update(id, prop, value) {
return value
? prop === 'tracks'
? (collection[id].tracks.push(value), collection)
: (collection[id][prop] = value, collection)
: (delete collection[id][prop], collection);
}
pngwn
@pngwn
Feb 17 2016 02:51
You see, I just don't think thats readable at all. I'd rather be verbose and know at a glance what something is doing rather than concise but confusing.
something like that is fine in isolation but imagine several hundred lines of code like that and i'd just lose my mind.
Norman Dela Cruz
@dcnr
Feb 17 2016 02:52
ahaha yes I agree
same with variable and function naming
pngwn
@pngwn
Feb 17 2016 02:53
I think there is a special place in hell for ternary operators, although there are some things you can only do with a ternary.
flexbox forggy is really fun
froggy
Matt Gilbert
@Alquh
Feb 17 2016 02:58
var count = 0;

function cc(card) {
// Only change code below this line
var x = [2,3,4,5,6];
var y = [7,8,9];
var z = [10,'J','Q','K','A'];

if (card == x) {
count++;
return count + " " + "Bet";
}
else
if (card <= 0)
count--;
return "Hold";
// Only change code above this line
}

// Note: Only the last will display
cc(2); cc(3); cc(7); cc('K'); cc('A');
how wrong do i have this?
Norman Dela Cruz
@dcnr
Feb 17 2016 02:58
@Alquh you're comparing card to an array
Matt Gilbert
@Alquh
Feb 17 2016 02:59
I realize that, is there another way to do this?
Norman Dela Cruz
@dcnr
Feb 17 2016 02:59
@Alquh I get your point though, I solved it this way, but you'll have to use indexOf and for each array set
Matt Gilbert
@Alquh
Feb 17 2016 03:02
@dcnr I'll do some research on indexOf. does everything else make sense?
Norman Dela Cruz
@dcnr
Feb 17 2016 03:05
@Alquh yeah I think you have an ok approach
@Alquh I understand that what you want to do is check if card is in one of the sets, and you can do that with indexOf
Matt Gilbert
@Alquh
Feb 17 2016 03:07
@dcnr perfect, thanks for the tip!
CamperBot
@camperbot
Feb 17 2016 03:07
alquh sends brownie points to @dcnr :sparkles: :thumbsup: :sparkles:
:star: 644 | @dcnr | http://www.freecodecamp.com/dcnr
Eduardo Garcia
@eagarcia8
Feb 17 2016 03:16
Hi everyone, I'm staring at some code, and can't seem to spot the problem! This is for "Profile Lookup":
function lookUp(firstName, prop){
// Only change code below this line

for (i=0; i < contacts.length; i++) {

if (contacts[i].firstName == firstName) {

if ( contacts[i].hasOwnProperty(prop) ) {
return contacts[i].prop;
}else {
return "No such property";
}

}else {

return "No such contact";

}
}

// Only change code above this line
}
Sri Keerthi N
@keerthinerella
Feb 17 2016 03:16
eeflores
@eeflores
Feb 17 2016 03:17
@eagarcia8 put the "no such contact" after the for loop
Eduardo Garcia
@eagarcia8
Feb 17 2016 03:17
@keerthinerella can you show me your code?
Sri Keerthi N
@keerthinerella
Feb 17 2016 03:17

function queue(arr, item) {

testArr.pop();
testArr.push(item);

return item; // Change this line
}

// Test Setup
var testArr = [1,2,3,4,5];

// Display Code
console.log("Before: " + JSON.stringify(testArr));
console.log(queue(testArr, 6)); // Modify this line to test
console.log("After: " + JSON.stringify(testArr));

eeflores
@eeflores
Feb 17 2016 03:18
@keerthinerella you'll want to use shift to get the first element in the array
push first, then shift
Sri Keerthi N
@keerthinerella
Feb 17 2016 03:19
ok i will try it out
should i clear the pop function?
eeflores
@eeflores
Feb 17 2016 03:20
yep
Eduardo Garcia
@eagarcia8
Feb 17 2016 03:20
@eeflores I see the error of my ways! Thanks eeflores I though placing it there If it fails to find the name, but I guess the first object will almost never match haha.
CamperBot
@camperbot
Feb 17 2016 03:20
eagarcia8 sends brownie points to @eeflores :sparkles: :thumbsup: :sparkles:
:star: 588 | @eeflores | http://www.freecodecamp.com/eeflores
eeflores
@eeflores
Feb 17 2016 03:20
yw
Norman Dela Cruz
@dcnr
Feb 17 2016 03:20
@keerthinerella you should also be working on arr instead of testArr
eeflores
@eeflores
Feb 17 2016 03:21
oh yeah that too
Sri Keerthi N
@keerthinerella
Feb 17 2016 03:22
ok
Nicolas May
@hynso
Feb 17 2016 03:23
Hi all... I'm looking to get some feedback on the title case algorithm problem... Can someone help me out?
eeflores
@eeflores
Feb 17 2016 03:24
@hynso code?
Nicolas May
@hynso
Feb 17 2016 03:24
'''
CamperBot
@camperbot
Feb 17 2016 03:24
:bulb: to format code use backticks!  more info
Nicolas May
@hynso
Feb 17 2016 03:25
function titleCase(str) {
strArray = str.split(" ");
newArray = [];
for (var i = 0; i < strArray.length; i++) {
newString = strArray[i][0].toUpperCase();
for (var j = 1; j < strArray[i].length; j++) {
newString += strArray[i][j].toLowerCase();
}
newArray.push(newString);
}
sentenceString = newArray.join(" ");
return sentenceString;
}

titleCase("I'm a little tea pot");
@eeflores I'm thinking there's got to be a more efficient/better way than nested for loops
eeflores
@eeflores
Feb 17 2016 03:25
@hynso you may want to declare newString at the start of the function
Nicolas May
@hynso
Feb 17 2016 03:25
@eeflores I mean, it works... it just seems so cumbersome
Norman Dela Cruz
@dcnr
Feb 17 2016 03:26
@hynso you don't have to use loops, there are string functions that deal with "chopping" em up, like slice, substr, and substring
Nicolas May
@hynso
Feb 17 2016 03:26
@dcnr like in python?
eeflores
@eeflores
Feb 17 2016 03:27
@hynso you could call toLowerCase on the whole string before loops ...
before the split, then you'll only need to convert the first char of each word
Nicolas May
@hynso
Feb 17 2016 03:28
@eeflores @dcnr thanks for the tips... using slice I'm thinking I can combine it with map
CamperBot
@camperbot
Feb 17 2016 03:28
hynso sends brownie points to @eeflores and @dcnr :sparkles: :thumbsup: :sparkles:
:star: 589 | @eeflores | http://www.freecodecamp.com/eeflores
:star: 645 | @dcnr | http://www.freecodecamp.com/dcnr
eeflores
@eeflores
Feb 17 2016 03:28
@hynso var strArray = str.toLowerCase().split(" ");
Norman Dela Cruz
@dcnr
Feb 17 2016 03:30
@hynso oh man would be really nice if we can just do it like python slice notationstring[:] etc
bitgrower
@bitgrower
Feb 17 2016 03:32
LOL ... there are LOTS of pythonics I miss here ...
as well as pointers ... from c ...
but ... it is what it is ... LOL ...
@dcnr -- any what's up with having those 3 different string functions ... slice, substr & substring ?
Norman Dela Cruz
@dcnr
Feb 17 2016 03:33

@bitgrower @hynso yeah would be awesome to just have

word = word[0].upper() + word[1:].lower()

or something, my python ain't good lol

@bitgrower :point_up: February 17, 2016 11:25 AM
Nicolas May
@hynso
Feb 17 2016 03:35
@eeflores @dcnr
function titleCase(str) {
strArray = str.toLowerCase().split(" ");
var newArray = strArray.map(function(strng) {
return (strng[0].toUpperCase() + strng.slice(1));
});
var newString = newArray.join(" ");
return newString;
}

titleCase("I'm a little tea pot");
@DiDzHey
Feb 17 2016 03:36
Am i the only one getting the "Oops! Something wen wrong. Try again later." notice?
Nicolas May
@hynso
Feb 17 2016 03:36
@eeflores @dcnr thanks again for the suggestions... map + slice are much cleaner
CamperBot
@camperbot
Feb 17 2016 03:36
hynso sends brownie points to @eeflores and @dcnr :sparkles: :thumbsup: :sparkles:
:warning: hynso already gave eeflores points
:warning: hynso already gave dcnr points
bitgrower
@bitgrower
Feb 17 2016 03:36
no, you are not @DiDzHey -- it's been going on for a few days ...
@DiDzHey
Feb 17 2016 03:37
@bitgrower thanks! Do you know why??
CamperBot
@camperbot
Feb 17 2016 03:37
didzhey sends brownie points to @bitgrower :sparkles: :thumbsup: :sparkles:
:star: 548 | @bitgrower | http://www.freecodecamp.com/bitgrower
Norman Dela Cruz
@dcnr
Feb 17 2016 03:37
@hynso yeah much easier to follow than nested for!
bitgrower
@bitgrower
Feb 17 2016 03:39
@DiDzHey -- nope -- think the FCC team has been trying to figure it out ...
@DiDzHey
Feb 17 2016 03:39
@bitgrower oh ok
bitgrower
@bitgrower
Feb 17 2016 03:40
@dcnr -- my python is worse off than yours ... I just vaguely remember parts from going thru the codecademy python course & the Learn Python the Hard Way Course last summer ... 6+ mos ... the info has kinda evaporated from my brain ...
Norman Dela Cruz
@dcnr
Feb 17 2016 03:42
@bitgrower I really like the hard way materials!
@hynso you can also use reduce instead of map!
Michelle
@Michelle2016
Feb 17 2016 03:52
Hello Everyone! I am on the Accessing Objects Properties with Variables Challenge. I have three out of the four little boxes under the submit button checked off and only one left! Can anyone please help me?
Norman Dela Cruz
@dcnr
Feb 17 2016 03:53
Salvatore Santamaria
@ssroman
Feb 17 2016 03:55

Hi, I'm having trouble with the Make Object Properties Private var Car = function() {
// this is a private variable
var speed = 10;

// these are public methods
this.accelerate = function(change) {
speed += change;
};

this.decelerate = function() {
speed -= 5;
};

this.getSpeed = function() {
return speed;
};
};

i am completely lost
Michelle
@Michelle2016
Feb 17 2016 03:55

// Setup
var testObj = {
12: "Namath",
16: "Montana",
19: "Unitas"
};

// Only change code below this line;

var playerNumber = 16; // Change this Line
var player = testObj[16];

@dcnr
Norman Dela Cruz
@dcnr
Feb 17 2016 03:56
@Michelle2016 you'll have to use playerNumber instead of directly using 16 with testObj
Michelle
@Michelle2016
Feb 17 2016 03:57
@dcnr Argh!! Thank you!
CamperBot
@camperbot
Feb 17 2016 03:57
michelle2016 sends brownie points to @dcnr :sparkles: :thumbsup: :sparkles:
:star: 646 | @dcnr | http://www.freecodecamp.com/dcnr
Michelle
@Michelle2016
Feb 17 2016 03:57
@dcnr I am going to study it a bit so that I can gt it conceptually as well before I move forward.
Jonah Erlich
@jerlich97
Feb 17 2016 03:57
@bitgrower I had to run for dinner with my family but I'm still confused on smallest common multiple
Salvatore Santamaria
@ssroman
Feb 17 2016 03:58
nvm i think i got it
Norman Dela Cruz
@dcnr
Feb 17 2016 03:58
@ssroman you'll have to work on the Bike variable and do what the instructions say
@Michelle2016 Oh I hope you'll read this, and I hope it's not so confusing!
Michelle
@Michelle2016
Feb 17 2016 03:59
@dcnr Thank you, I definitely will!
CamperBot
@camperbot
Feb 17 2016 03:59
michelle2016 sends brownie points to @dcnr :sparkles: :thumbsup: :sparkles:
:warning: michelle2016 already gave dcnr points
Norman Dela Cruz
@dcnr
Feb 17 2016 04:01
thank you! and tell me if there are parts that are confusing @Michelle2016
CamperBot
@camperbot
Feb 17 2016 04:01
dcnr sends brownie points to @michelle2016 :sparkles: :thumbsup: :sparkles:
:star: 221 | @michelle2016 | http://www.freecodecamp.com/michelle2016
Jonah Erlich
@jerlich97
Feb 17 2016 04:02
Any suggestions? all the tests work except the last input
function smallestCommons(arr) {
var min;
var max;
var range = [];
if(arr[0]>arr[1]){
max=arr[0];
min=arr[1];
}
else{
max=arr[1];
min=arr[0];
}
for(var i = min; i <= max; i++){
range.push(i);
}
console.log("range" + range + range[range.length-1]);
for(var j = range[range.length-1]; j <= 360361; j++){
if(isDivis(range, j)){
return j;
}
}
}

function isDivis(r, num){
console.log(r.length);
for(var k = r[0]; k <= r[r.length-1]; k++){
if(num%k!==0){
return false;
}
}
return true;
}
smallestCommons([1,13]);
Norman Dela Cruz
@dcnr
Feb 17 2016 04:04
@jerlich97 how did you come up with the 360361 part?
Jonah Erlich
@jerlich97
Feb 17 2016 04:06
@dcnr The challenge says the higher output will be 360360
highest*
@dcnr I'm warned of an infinite loop for the [1,13] input and doing noprotect crashes the tab
Norman Dela Cruz
@dcnr
Feb 17 2016 04:12
@jerlich97 yeah I'm having infiniteloop protection errors too :(
Jonah Erlich
@jerlich97
Feb 17 2016 04:13
@dcnr I asked about it earlier and another user mentioned something about prime numbers, but it didn't make too much sense to me
@dcnr "the algo I found that worked most easily for this is to realize every common divisor is going to be a prime ... and sometimes the prime has to be used more than once."
Norman Dela Cruz
@dcnr
Feb 17 2016 04:17
@jerlich97 for me, I just did it like how I would do it with pen and paper, I made a gcd function based on the Euclidean Algorithm and get the lcm through Reduction by GCD
Jonah Erlich
@jerlich97
Feb 17 2016 04:20
@dcnr but there is no gcd for an entire range such as [1,13]
Norman Dela Cruz
@dcnr
Feb 17 2016 04:37
@jerlich97 you can always get lcm(a, b) then the result of that with the next one etc something like lcm(lcm(lcm(a, b), c), d) etc
@jerlich97 so my LCM would look like this
// my lcm reduction
result = range.reduce(function(a, b) {
return lcm(a, b);
});
Bryan Gilbraith
@bryantheastronaut
Feb 17 2016 04:39
help chunky monkey
CamperBot
@camperbot
Feb 17 2016 04:39

# Explanation

Our goal for this Algorithm is to split arr (first argument) into smaller chunks of arrays with the length provided by size (second argument). There are 4 green checks (objectives) our code needs to pass in order to complete this Algorithm:

1. (['a', 'b', 'c', 'd'], 2) is expected to be [['a', 'b'], ['c', 'd']]
2. ([0, 1, 2, 3, 4, 5], 3) is expected to be [[0, 1, 2], [3, 4, 5]]
3. ([0, 1, 2, 3, 4, 5], 2) is expected to be [[0, 1], [2, 3], [4, 5]]
4. ([0, 1, 2, 3, 4, 5], 4) is expected to be [[0, 1, 2, 3], [4, 5]]

Jonah Erlich
@jerlich97
Feb 17 2016 04:40
@dcnr I think I might understand, give me a few minutes
Norman Dela Cruz
@dcnr
Feb 17 2016 04:41
@jerlich97 here's some pseudocode implementation for gcd
Dinara Demi
@Gezehus
Feb 17 2016 04:42
Hello everyone! Advise me please good online resource to learn JSON and AJAX. I've done all the tasks in FCC but I didn't understand how to use them.
Norman Dela Cruz
@dcnr
Feb 17 2016 04:44
@Gezehus try asking in the main room and the FrontEnd too!
Jonah Erlich
@jerlich97
Feb 17 2016 04:46
@dcnr ohhh, I see
Nikolajs Korolkovs
@NickEU
Feb 17 2016 04:48
@jerlich97 your way is very slow, but ok... think of the smallest common multiple as something that will always be divisible by your max number in the range without a remainder.. and think about what do you need to change in your code ( the j++ part of your for loop specifically) to drastically reduce the number of iterations and isDivis calls u're gonna have to make..
Feb 17 2016 04:49
Man, that "Record Collection" exercise almost killed me, but everything is starting to click
Norman Dela Cruz
@dcnr
Feb 17 2016 04:50
@jerlich97 let's see if this works lol
welp my latex sucks
Jonah Erlich
@jerlich97
Feb 17 2016 04:51
@dcnr I think I'm on the right track, 1 sec
@dcnr I'm not getting the right output for reduce(gcd)
@dcnr It always gives me a 1


function smallestCommons(arr) {
arr = arr.sort(function(a,b){
return a - b;
});
var range = [];
for(var i = arr[0]; i <= arr[1]; i++){
range.push(i);
}
var result = range.reduce(function(a,b){
return gcd(a,b);
});
console.log(result);
return result;
}
function gcd(a, b){
var c;
while(b!==0){
c = b;
b = a%b;
a = c;
}
return a;
}

smallestCommons([1,5]);

 @dcnr

function smallestCommons(arr) {
arr = arr.sort(function(a,b){
return a - b;
});
var range = [];
for(var i = arr[0]; i <= arr[1]; i++){
range.push(i);
}
var result = range.reduce(function(a,b){
return gcd(a,b);
});
console.log(result);
return result;
}
function gcd(a, b){
var c;
while(b!==0){
c = b;
b = a%b;
a = c;
}
return a;
}

smallestCommons([1,5]);
Norman Dela Cruz
@dcnr
Feb 17 2016 04:53
@jerlich97 you'll have to use gcd with lcm
function lcm(a, b) {
return a / gcd(a, b) * b;
}
@DiDzHey
Feb 17 2016 04:53
@Gezehus you could also try Udemy courses
Norman Dela Cruz
@dcnr
Feb 17 2016 04:53
@jerlich97 I don't really know if this is efficient though, doing lcm and gcd
@jerlich97 I'm not good with math, so I'm just going by the basics, there must be some other direct way
Jonah Erlich
@jerlich97
Feb 17 2016 04:54
@dcnr Thanks, that worked
CamperBot
@camperbot
Feb 17 2016 04:54
jerlich97 sends brownie points to @dcnr :sparkles: :thumbsup: :sparkles:
:star: 647 | @dcnr | http://www.freecodecamp.com/dcnr
Norman Dela Cruz
@dcnr
Feb 17 2016 04:54
@jerlich97 awesome!
Jonah Erlich
@jerlich97
Feb 17 2016 04:54
@dcnr Although, I do feel like I should improve my math skills too, any suggestions?
Norman Dela Cruz
@dcnr
Feb 17 2016 04:55
@jerlich97 yeah me too, I'd like to at least relearn my algebra lol. I'm just doing KhanAcademy stuff for now
@jerlich97 and Better Explained is awesome too
Jonah Erlich
@jerlich97
Feb 17 2016 04:56
@dcnr Cool. I've actually heard that conventional schooling (especially in the US) skips a lot of very important foundational pieces so I'll definitely check those out
Norman Dela Cruz
@dcnr
Feb 17 2016 04:56
@jerlich97 I didn't join the newsletters though
@jerlich97 I'm not from the US so I don't really know how they do their academics. I'm just thankful we have many resource we can use for self studies.
Norman Dela Cruz
@dcnr
Feb 17 2016 05:02
This message was deleted
Dinara Demi
@Gezehus
Feb 17 2016 05:03
@DiDzHey Thank you very much!
CamperBot
@camperbot
Feb 17 2016 05:03
gezehus sends brownie points to @didzhey :sparkles: :thumbsup: :sparkles:
:star: 256 | @didzhey | http://www.freecodecamp.com/didzhey
SuhasHosamani
@SuhasHosamani
Feb 17 2016 05:20
function mutation(arr) {
for(i=0;i<arr.length;i++){

if(arr[i].indexOf(arr[i+1])){
return true;
}else{
return false;
}

}

}

mutation(["hello", "neo"]);
this function is not returning false
whats wrong in this??
Norman Dela Cruz
@dcnr
Feb 17 2016 05:23
damn latex I finally got it! @jerlich97 lolol
${lcm}(a,b)=\left(\frac{|a|}{{gcd}(a,b)}\right)\cdot |b|=\left(\frac{|b|}{{gcd}(a,b)}\right)\cdot |a|.$
steve
@davidsonsteve
Feb 17 2016 05:24
@SuhasHosamani i'm no pro but what is that if statement being tested against?
Nikolajs Korolkovs
@NickEU
Feb 17 2016 05:24
@SuhasHosamani you have to check the individual letters of the second string.. and you are checking the whole string.. once :P
@davidsonsteve that too ;) indexOf() returns -1 if something is not found, which evaluates to true when converted to boolean... if it returns 0, which means it found the element u're looking for and it's at index 0 it will evaluate to false and the else statement will be executed @SuhasHosamani
Fayheim
@Fayheim
Feb 17 2016 05:29
hi
// Example
var ourArray = [1,2,3];
ourArray[1] = 3; // ourArray now equals [1,3,3].

// Setup
var myArray = [1,2,3];

// Only change code below this line.
var myArray = [3,2,3];
"You should be using correct index to modify the value in myArray.
"
the error im getting
Nikolajs Korolkovs
@NickEU
Feb 17 2016 05:31
@Fayheim take a good look at the example and read the description again ;) what u're doing is creating a new array twice basically... what you need to do is modify an existing array that was created in the setup line for you ;)
by accessing the n-th element of that array with a bracket notation and assigning a new value to that element
Fayheim
@Fayheim
Feb 17 2016 05:32
Allright
I'll try
Nikolajs Korolkovs
@NickEU
Feb 17 2016 05:34
@Fayheim you will NOT TRY... you will succeed and ace the fing challenge like a pro!
Unnikrishnan
@ukpa
Feb 17 2016 05:35
how does this "add(2)(3)" function call works?
bitgrower
@bitgrower
Feb 17 2016 05:36
you doing arguments optional @ukpa ?
Unnikrishnan
@ukpa
Feb 17 2016 05:36
yeah
bitgrower
@bitgrower
Feb 17 2016 05:37
@jerlich97 -- you still around ?
Nikolajs Korolkovs
@NickEU
Feb 17 2016 05:37
@ukpa if you're serious about learning javascript take a while and read/google all you can on closures = it's a very important and powerful concept = lots of good info there
bitgrower
@bitgrower
Feb 17 2016 05:37
to be honest, I don't really know ... what is that test case supposed to do ?
Unnikrishnan
@ukpa
Feb 17 2016 05:37
okay, i will do that :)
but i just wanted to know how these kind of function works
bitgrower
@bitgrower
Feb 17 2016 05:38
there's a udemy course js the weird parts -- you can pick it up for \$10 with one of the ever-frequent udemy coupons ... it's a very good course -- you can watch the 1st 3.5 hours yt - he covers closures pretty well, as I recall ...
JackeL
@jackel27
Feb 17 2016 05:39
Nikolajs Korolkovs
@NickEU
Feb 17 2016 05:39
@ukpa https://www.udacity.com/course/progress#!/c-ud015 pretty good video explanation of closures with visual illustration in this course and it's free, you can start there... or just read a few articles = there are a ton of them
Unnikrishnan
@ukpa
Feb 17 2016 05:39
Okay, thanks a ton mate for all the help. I will do that :)
bitgrower
@bitgrower
Feb 17 2016 05:39
@ukpa -- yeah ... don't have a free resource handy -- I don't recall if the guy covers clossures in the first 3.5 hours ... but I"m not the only one who likes it ...
javascript resources
help javascript resources
CamperBot
@camperbot
Feb 17 2016 05:40
no wiki entry for: javascript resources
bitgrower
@bitgrower
Feb 17 2016 05:40
help js resources
CamperBot
@camperbot
Feb 17 2016 05:40

## :point_right: js resources [wiki]

### References

Find javascript libraries at http://jster.net

See Also: :loop: Quick JS | :watch: Challenges | :wrench: Exercises | :clipboard: Editors | :newspaper: Blogs | :books: Books

Nikolajs Korolkovs
@NickEU
Feb 17 2016 05:40
i have found that watching/reading about the same concept from a few different sources and seeing it explained in different styles from different angles is the only thing that will let the stuff sink in very well ;) and obviously = practice ;) but it's kinda hard to practice things like that unless you understand wtf is going on
Jineen Williams
@jineen22
Feb 17 2016 05:40

I'm working on this challenge. http://www.freecodecamp.com/challenges/concatenating-strings-with-the-plus-equals-operator

Here is my code. What is wrong?


// Example
var ourStr = "I come first. ";
ourStr += "I come second.";

// Only change code below this line

var myStr= ("This is the first sentence. ");
myStr += ("This is the second sentence.");

bitgrower
@bitgrower
Feb 17 2016 05:40
yup -- definitely ...
Jineen Williams
@jineen22
Feb 17 2016 05:40
// Example
var ourStr = "I come first. ";
ourStr += "I come second.";

// Only change code below this line

var myStr= ("This is the first sentence. ");
myStr += ("This is the second sentence.");
bitgrower
@bitgrower
Feb 17 2016 05:41
umm ... can you paste ALL of the code, please ?
JackeL
@jackel27
Feb 17 2016 05:41
Nikolajs Korolkovs
@NickEU
Feb 17 2016 05:41
@jineen22 parenthesis are evil
in this particular case at least :P
bitgrower
@bitgrower
Feb 17 2016 05:41
hahahaha @NickEU
Unnikrishnan
@ukpa
Feb 17 2016 05:41
@jineen22 don't use parenthesis
JackeL
@jackel27
Feb 17 2016 05:42
just finished AngularJS and wow. tough stuff
Stephen Rawson
@stephenrawson
Feb 17 2016 05:45
Little lost on record collection, you are given id, prop and value, if value is non-blank and prop is not "tracks" then update or set the value for the prop?
JackeL
@jackel27
Feb 17 2016 05:47
@stephenrawson can you paste the details?
Stephen Rawson
@stephenrawson
Feb 17 2016 05:47

You are given a JSON object representing (a small part of) your record collection. Each album is identified by a unique id number and has several properties. Not all albums have complete information.

Write a function which takes an id, a property (prop), and a value.

For the given id in collection:

If value is non-blank (value !== "") and prop is not "tracks" then update or set the value for the prop.

If the prop is "tracks" and value is non-blank, push the value onto the end of the tracks array.

If value is blank, delete that prop.

Always return the entire collection object.

@jackel27 , should I include the code for the question?
JackeL
@jackel27
Feb 17 2016 05:49
okay, so basically, create a function (id,prop,value){
for this.id..
if (value condition)....
if (prop condition)....
I am guessing you itterate through the id and check prop and values..
function to itterate through an array.
@stephenrawson sure
Stephen Rawson
@stephenrawson
Feb 17 2016 05:52

var collection = {
2548: {
album: "Slippery When Wet",
artist: "Bon Jovi",
tracks: [
"Let It Rock",
"You Give Love a Bad Name"
]
},
2468: {
album: "1999",
artist: "Prince",
tracks: [
"1999",
"Little Red Corvette"
]
},
1245: {
artist: "Robert Palmer",
tracks: [ ]
},
5439: {
album: "ABBA Gold"
}
};
// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));

// Only change code below this line
function update(id, prop, value) {
if (value !== "")
{
if (prop !== "tracks")
{
collection.id.value = prop;
}
else
{
collection.
}
}

return collection;
}

Carlos Leonard
@gutty333
Feb 17 2016 05:54
hello everyone had some question regarding this function. I looked at the statements I cannot wrap my head around what the issue is:
for (var x = 0; x < contacts.length; x++)
{

if (contacts[x].firstName != firstName)
{
return "No such contact";
}
else if (!(contacts[x].hasOwnProperty([prop])))
{
return "No such property";
}
else if (contacts[x].firstName == firstName && contacts[x].hasOwnProperty([prop]))
{
return contacts[x][prop];
}
}
Stephen Rawson
@stephenrawson
Feb 17 2016 05:54
@jackel27 first time using the Help Chat, i'm not to sure how to format the code in the black box...
Carlos Leonard
@gutty333
Feb 17 2016 05:55
the challenge is saying that the issue is with the last condition, but to my eye things look good
JackeL
@jackel27
Feb 17 2016 05:55
explain format @stephenrawson
CamperBot
@camperbot
Feb 17 2016 05:55

## :point_right: code formatting [wiki]

### Inline code

This an inline <paste code here> code formatting with a single backtick() at start and end around the code.

### Code Block

js ⇦ Type 3 backticks and then press [shift + enter ⏎] (type js or html or css)

then press [shift + enter ⏎]

 ⇦ Type 3 backticks, then press [enter ⏎]

See also: ☛ How to type Backticks | ☯ Compose Mode | ❄ Gitter Formatting Basics

bitgrower @bitgrower decides to use bigdata to determine the most frequently asked about challenges .... Profile Lookup has got to be among the top ...
Jineen Williams
@jineen22
Feb 17 2016 05:55
@NickEU @ukpa Thank you!
CamperBot
@camperbot
Feb 17 2016 05:55
jineen22 sends brownie points to @nickeu and @ukpa :sparkles: :thumbsup: :sparkles:
:star: 371 | @nickeu | http://www.freecodecamp.com/nickeu
:star: 299 | @ukpa | http://www.freecodecamp.com/ukpa
Stephen Rawson
@stephenrawson
Feb 17 2016 05:55
@jackel27 Thanks!!!
Carlos Leonard
@gutty333
Feb 17 2016 05:56
any ideas?
bitgrower
@bitgrower
Feb 17 2016 05:56
yes, @gutty333
it's like this ....
JackeL
@jackel27
Feb 17 2016 05:57
@stephenrawson basically, I believe you are to iterate through the array, if the track does not exist, add it to the array. possibly going through a for loop as @gutty333 did
bitgrower
@bitgrower
Feb 17 2016 05:57
if you have 20 marbles in a bag, how many do you have to look at before you know there are no black marbles in the bag (not a trick question ... this is designed to provide insight into the problem...)
Carlos Leonard
@gutty333
Feb 17 2016 05:58
20, search through all ?
bitgrower
@bitgrower
Feb 17 2016 05:58
bingo!!!!
you can't return with no contact found until you search 'em all ...
JackeL
@jackel27
Feb 17 2016 06:00
@stephenrawson what challenge is that called?
Carlos Leonard
@gutty333
Feb 17 2016 06:00
ok yeah I got, but that is odd it should have worked this way also. basically I had it as
do a linear search
if you find this or do that
do this action
Stephen Rawson
@stephenrawson
Feb 17 2016 06:00
@jackel27 its called Record Collection
JackeL
@jackel27
Feb 17 2016 06:00
@stephenrawson ok, let me check it out, one sec
Stephen Rawson
@stephenrawson
Feb 17 2016 06:00
@jackel27 Thanks for taking a look
CamperBot
@camperbot
Feb 17 2016 06:00
stephenrawson sends brownie points to @jackel27 :sparkles: :thumbsup: :sparkles:
:star: 316 | @jackel27 | http://www.freecodecamp.com/jackel27
bitgrower
@bitgrower
Feb 17 2016 06:01
what is the problem you are having with it, @stephenrawson ? and did you post it formatted ?
dang it, I can't pull up my solution atm ...
Stephen Rawson
@stephenrawson
Feb 17 2016 06:03
@bitgrower i'm working on Record Collection...I haven't posted it formatted yet....I'll try to post it now.
JackeL
@jackel27
Feb 17 2016 06:03

@stephenrawson for the first instruction:

If value is non-blank (value !== "") and prop is not "tracks" then update or set the value for the prop.

You were close on your first line, but remember, you can also use the && operator

@stephenrawson so something like this...
if(value !== "" && prop !== "tracks"){
......
}
for the instruction states: If value is non-blank (value !== "") and prop is not "tracks" Keyword AND
bitgrower
@bitgrower
Feb 17 2016 06:06
hmm ... you sure that doesn't mess up the subsequent else ?
Stephen Rawson
@stephenrawson
Feb 17 2016 06:06
@jackel27 gotcha, then else if value !=="" && prop ==="tracks"
bitgrower
@bitgrower
Feb 17 2016 06:07
This message was deleted
yeah, easier to just test the value !== "" just once ...
JackeL
@jackel27
Feb 17 2016 06:07

@stephenrawson also,,

collection.id.value = prop;

instead of using dot notation use :

collection[id][value] = prop;

But that line is also wrong, well.. should not equal prop ;)

Carlos Leonard
@gutty333
Feb 17 2016 06:08

@bitgrower I am still a little apprehensive over this

for (var x = 0; x < contacts.length; x++)
{

if (contacts[x].firstName != firstName)
{
return "No such contact";
}
else if (!(contacts[x].hasOwnProperty([prop])))
{
return "No such property";
}
else if (contacts[x].firstName == firstName && contacts[x].hasOwnProperty([prop]))
{
return contacts[x][prop];
}
}

isn't the for loop doing exactly that

searching through everything and if it meets the conditions it return the correct statement?
JackeL
@jackel27
Feb 17 2016 06:10
@stephenrawson
then update or set the value for the prop.
Stephen Rawson
@stephenrawson
Feb 17 2016 06:11
@jackel27 okay, so bracket notation for access...i'm setting prop = value?
JackeL
@jackel27
Feb 17 2016 06:12
@stephenrawson correct.
collection[id][prop] = value;
Markus Kiili
@Masd925
Feb 17 2016 06:12
@gutty333 Your loop is going over all the contacts. Return no such contact must come after you have checked all the contacts.
Stephen Rawson
@stephenrawson
Feb 17 2016 06:13
@jackel27 Gotcha, man-oh-man! Thanks!! It makes a lot of sense now!!
CamperBot
@camperbot
Feb 17 2016 06:13
stephenrawson sends brownie points to @jackel27 :sparkles: :thumbsup: :sparkles:
:warning: stephenrawson already gave jackel27 points
JackeL
@jackel27
Feb 17 2016 06:14
@stephenrawson no prob! when you get to the push part, it should be quite similar but with push() involved.
bitgrower
@bitgrower
Feb 17 2016 06:14
@gutty333 -- what happens to the first member of the array it checks and finds that the contact isn't that one ... ? it returns ... can't iterate after it returns
JackeL
@jackel27
Feb 17 2016 06:14
@stephenrawson nice to help a fellow WA resident :)
Carlos Leonard
@gutty333
Feb 17 2016 06:15
I understand, but for example one of the test is "Kristian", "lastName" should return "Vos"
oh nevermind I get it, even though is in the list, is checking a different index of the array
bitgrower
@bitgrower
Feb 17 2016 06:16
forget the order ... forget the contents ... you have a bag of marbles, and the first time you found a non-black marble, you've returned and said there were no black marbles found
SuhasHosamani
@SuhasHosamani
Feb 17 2016 06:17
@davidsonsteve @NickEU should i have one more for loop to check for each letter??
bitgrower
@bitgrower
Feb 17 2016 06:17
you have to go thru EVERY element of your array to say that the contact does not exist ... as @Masd925 said early -- you have to do this AFTER you've gone thru your for loop
Carlos Leonard
@gutty333
Feb 17 2016 06:23
ok got it working, thank you
bitgrower
@bitgrower
Feb 17 2016 06:25
YAY!!!! happy coding ... @gutty333
and now that you have it working, @gutty333 -- do you understand WHY ?
bitgrower
@bitgrower
Feb 17 2016 06:32

:point_up: February 16, 2016 9:23 PM

too rad, @dcnr ... LaTex ...

Ankit Panwar
@coderNoob
Feb 17 2016 06:41
@dcnr My reset button only works in DevTools mode. Why?
http://codepen.io/coderNoob/pen/vLmyWN?editors=1010
Norman Dela Cruz
@dcnr
Feb 17 2016 06:42
@bitgrower it's pretty cool! $E=mc^{2}$
kirbyedy
@kirbyedy
Feb 17 2016 06:43
morning
Norman Dela Cruz
@dcnr
Feb 17 2016 06:46
@coderNoob hi sorry I haven't really work on that end :(
Stephen Rawson
@stephenrawson
Feb 17 2016 06:50
@jackel27 made it through that challenge and few more! Go team WA!
Stanley
@stanleyyylau
Feb 17 2016 06:55
hi everyone
<div class="test"><a>click</a></div>
can i add some JS code, so when clicked, an alert box show up

the html is here 

<div class="test"><a>click</a></div>


but can't change the html
can anyone help?
Stanley
@stanleyyylau
Feb 17 2016 06:59
@kirbyedy no, i can't change the html
kirbyedy
@kirbyedy
Feb 17 2016 07:01
I am afraid I dont understand your problem then
Trevor
@zicameau
Feb 17 2016 07:02
This message was deleted
Stanley
@stanleyyylau
Feb 17 2016 07:02
it's a real life situation, i can't change the html, i can only add JS to trigger an click function. because the html is genereated by wordpress
Trevor
@zicameau
Feb 17 2016 07:04
This message was deleted
CamperBot
@camperbot
Feb 17 2016 07:04
:bulb: to format code use backticks!  more info
bitgrower
@bitgrower
Feb 17 2016 07:05
@bitgrower it's pretty cool! $E=mc^{2}$
Trevor
@zicameau
Feb 17 2016 07:05
If someone could help me with this, it would be most appreciated. I need to access the second tree type which is pine.
// Setup
var myPlants = [
{
type: "flowers",
list: [
"rose",
"tulip",
"dandelion"
]
},
{
type: "trees",
list: [
"fir",
"pine",
"birch"
]
}
];

// Only change code below this line

var secondTree = myPlants.type.list[1]; // Change this line
bitgrower
@bitgrower
Feb 17 2016 07:06
okay ... @zicameau -- what kind of data structure are you looking at ?
what is myPlants ?
is it a number? a function? an object? an array? what ?
Trevor
@zicameau
Feb 17 2016 07:07
Well it's a JSON object with two types of type objects which are trees and flowers
bitgrower
@bitgrower
Feb 17 2016 07:08
is it?
what's that first character after the = sign ?
Trevor
@zicameau
Feb 17 2016 07:08
oh it's an array
bitgrower
@bitgrower
Feb 17 2016 07:08
:) bingo!!!
an array of ?
Trevor
@zicameau
Feb 17 2016 07:09
an array of objects? and thanks!
bitgrower
@bitgrower
Feb 17 2016 07:10
yes, an array of objects ... :)
Trevor
@zicameau
Feb 17 2016 07:10
Thanks a bunch man, much appreciated!
bitgrower
@bitgrower
Feb 17 2016 07:10
whenever you are handed a data structure ... just walk it down and see what it is ...
woman ... but your thanks are welcomed ... right, @camperbot ?
CamperBot
@camperbot
Feb 17 2016 07:10
bitgrower sends brownie points to @camperbot :sparkles: :thumbsup: :sparkles:
:star: 1202 | @camperbot | http://www.freecodecamp.com/camperbot
Abhishek Kumar
@abhishekKumar1
Feb 17 2016 07:11
wow you can send brownie points to camperbot nice
thanks @camperbot
CamperBot
@camperbot
Feb 17 2016 07:11
abhishekkumar1 sends brownie points to @camperbot :sparkles: :thumbsup: :sparkles:
:star: 1203 | @camperbot | http://www.freecodecamp.com/camperbot
bitgrower @bitgrower thanks @dcnr for cool LaTex stuff ...
Trevor
@zicameau
Feb 17 2016 07:11
thanks @bitgrower
CamperBot
@camperbot
Feb 17 2016 07:11
zicameau sends brownie points to @bitgrower :sparkles: :thumbsup: :sparkles:
:star: 549 | @bitgrower | http://www.freecodecamp.com/bitgrower
bitgrower
@bitgrower
Feb 17 2016 07:12
yw, @zicameau -- happy coding .... :)
kirbyedy
@kirbyedy
Feb 17 2016 07:12
@bitgrower you are not working on the ziplines ?
bitgrower
@bitgrower
Feb 17 2016 07:13
yeah, I am ... taking a break ... I fell down a bootstrap/css/css animations hole ... decided my brain needed some rest ...
looking for interesting things to spice up my pages ... eye candy, baby .... :)
digging into arcana like what colors go with what ... what are some cool fonts, etc ...
kirbyedy
@kirbyedy
Feb 17 2016 07:14
fck stuck with wikipedia
I have to take a break
bitgrower
@bitgrower
Feb 17 2016 07:15
sorry :( ... you tried the frontend room ...
kirbyedy
@kirbyedy
Feb 17 2016 07:15
it will wait a bit, because once I start waking up with a headache, I know I have to stop
bitgrower
@bitgrower
Feb 17 2016 07:16
time to take a break -- get some sunshine, take a walk, go outside ...
or do something like I did ... stumbled over cool css animation stuff ... LOL ...
yeah ... I'm anxious to get the first 2 ziplines out of the way ... I haven't found the key to opening up bootstrap understanding for my brain yet, though ...
I could do it in straight html ... it doesn't actually say you have to make them responsive ... LOL ....
...but it just wouldn't feel right ... LOL ...
kirbyedy
@kirbyedy
Feb 17 2016 07:19
:)
bitgrower
@bitgrower
Feb 17 2016 07:21
create a link to an outside website ... in my sleep ...
someone gave me a resource to checkout on bootstrap -- I think a little bit is seeping in, we shall see ...
they did a good thing moving those first two ziplines ahead of js ...
kirbyedy
@kirbyedy
Feb 17 2016 07:25
ah I see it now
lots of ooops something went wrong
so tribute page and portfolio is now first two ziplines
and calculator and pomodoro are pushed to the end
bitgrower
@bitgrower
Feb 17 2016 07:28
yeah ... people get into the algos and forget the html/jquery/bootstrap/css they just learned ...
Wes
@weslez
Feb 17 2016 07:30
This message was deleted
Hello friends, quick question on my Profile Lookup challenge. Is it possible to use a While Loop to solve this challenge? If not, can you help me understand the reason why not? And why the For Loop is the proper one? In my mind right now the two Loop types seem interchangeable in this challenge, with the While Loop just slightly more streamlined.
//Setup
var contacts = [
{
"firstName": "Akira",
"lastName": "Laine",
"number": "0543236543",
"likes": ["Pizza", "Coding", "Brownie Points"]
},
{
"firstName": "Harry",
"lastName": "Potter",
"number": "0994372684",
"likes": ["Hogwarts", "Magic", "Hagrid"]
},
{
"firstName": "Sherlock",
"lastName": "Holmes",
"number": "0487345643",
"likes": ["Intriguing Cases", "Violin"]
},
{
"firstName": "Kristian",
"lastName": "Vos",
"number": "unknown",
"likes": ["Javascript", "Gaming", "Foxes"]
}
];

function lookUp(firstName, prop){
// Only change code below this line
i = 0;
while (contacts[i].firstName !== firstName) {
i++; return"No such contact";
} while (contacts[i].prop === "") {
i++; return "No such property";
} while (contacts[i].firstName === firstName && prop !== "") {
i++; return contacts[i].prop;
}
//contacts.firstName[0];
// Only change code above this line
}

// Change these values to test your function
lookUp("Kristian", "lastName");
bitgrower
@bitgrower
Feb 17 2016 07:32
yes, you need a loop
Mannu Gupta
Feb 17 2016 07:33
Encode the following sequence, separated by spaces:
backslash tab tab carriage-return new-line and assign it to myStr
bitgrower
@bitgrower
Feb 17 2016 07:33
easier to find when you've iterated thru all the objects ... is why you use a for loop
Anita Leung
@anitaleung
Feb 17 2016 07:33
I'm stuck on the same problem as well!
bitgrower
@bitgrower
Feb 17 2016 07:33
explain format
CamperBot
@camperbot
Feb 17 2016 07:33

## :point_right: code formatting [wiki]

### Inline code

This an inline <paste code here> code formatting with a single backtick() at start and end around the code.

### Code Block

js ⇦ Type 3 backticks and then press [shift + enter ⏎] (type js or html or css)

then press [shift + enter ⏎]

 ⇦ Type 3 backticks, then press [enter ⏎]

See also: ☛ How to type Backticks | ☯ Compose Mode | ❄ Gitter Formatting Basics

bitgrower
@bitgrower
Feb 17 2016 07:33
Mannu Gupta
Feb 17 2016 07:33
Encode the following sequence, separated by spaces:
backslash tab tab carriage-return new-line and assign it to myStr
stuck here
Wes
@weslez
Feb 17 2016 07:34
@bitgrower Were you responding to me?
bitgrower
@bitgrower
Feb 17 2016 07:34
LOL, no @weslez -- scroll up ...
or ... you mean about loops -- yep -- that was for you ...
yes that problem needs a loop, and the reason you need a for loop is you need to iterate thru all the objects ...
Anita Leung
@anitaleung
Feb 17 2016 07:35
This is my code I have so far, but I got an error.
function lookUp(firstName, prop){
// Only change code below this line
for (var i = 0; i < contacts.length; i++) {
if (contacts[i].firstName === firstName) {
if (contacts[i].hasProperty(prop)) {
return contacts[i][prop];
} else {
return "No such property";
}
}
return "No such contact";
}
// Only change code above this line
}
The error I got had something to do with the .hasProperty() method
bitgrower
@bitgrower
Feb 17 2016 07:37
that's because it's hasOwnProperty()
Abhishek Kumar
@abhishekKumar1
Feb 17 2016 07:37
@anitaleung try hasOwnProperty()
bitgrower
@bitgrower
Feb 17 2016 07:38
the reason it's hasOwnProperty is because objects have something called a prototype chain which can come up with additional properties ... you want to know if this instance of the object has this property ...
Anita Leung
@anitaleung
Feb 17 2016 07:41
Oh awesome! Thanks @bitgrower and @abhishekKumar1 ! Unfortunately it's still not satisfying all the conditions..
CamperBot
@camperbot
Feb 17 2016 07:41
anitaleung sends brownie points to @bitgrower and @abhishekkumar1 :sparkles: :thumbsup: :sparkles:
:star: 550 | @bitgrower | http://www.freecodecamp.com/bitgrower
:star: 340 | @abhishekkumar1 | http://www.freecodecamp.com/abhishekkumar1
bitgrower
@bitgrower
Feb 17 2016 07:41
nope it's not ...
@anitaleung -- think about this ... if you have 10 marbles in a bag, how many marbles do you have to look at to know that there are no black marbles in the bag ?
(this is NOT a brain teaser...the answer should be obvious. I asked, because it's a similar problem...)
Anita Leung
@anitaleung
Feb 17 2016 07:46
does it not iterate through all the objects in contacts by using contacts.length ?
bitgrower
@bitgrower
Feb 17 2016 07:47
not if you return early ...
you are basically looking at the first object and if it doesn't match your contact, returning ... you haven't looked at the rest of the array ...
greg
@wearenotgroot
Feb 17 2016 07:47
Anita Leung
@anitaleung
Feb 17 2016 08:16
Okay I finally got it by moving around the return statements and using a boolean flag. Please let me know if there was an easier way to do this! Thanks @bitgrower and @wearenotgroot
function lookUp(firstName, prop){
// Only change code below this line
var hasContact = false;
for (var i = 0; i < contacts.length; i++) {
if (contacts[i].firstName === firstName) {
hasContact = true;
if (contacts[i].hasOwnProperty(prop)) {
return contacts[i][prop];
}
}
}
if (hasContact) {
return "No such property";
}
return "No such contact";
// Only change code above this line
}
CamperBot
@camperbot
Feb 17 2016 08:16
anitaleung sends brownie points to @bitgrower and @wearenotgroot :sparkles: :thumbsup: :sparkles:
:warning: anitaleung already gave bitgrower points
:star: 874 | @wearenotgroot | http://www.freecodecamp.com/wearenotgroot
greg
@wearenotgroot
Feb 17 2016 08:17
@anitaleung the second if statement just needed an else
chaitanya ashtekar
@chaitanyaashtekar
Feb 17 2016 08:17
@wearenotgroot i can see on;y 3 projects in basic front end projrcts.has something changed ??
greg
@wearenotgroot
Feb 17 2016 08:18
@anitaleung
if (contacts[i].hasOwnProperty(prop)) {
return contacts[i][prop];
}
else
{
return "No such property";

}
@chaitanyaashtekar they been move
@chaitanyaashtekar basic and intermediate
Mateus Felipe C. C. Pinto
@mateusfccp
Feb 17 2016 08:18
@anitaleung
function update(id, prop, value) {
if(value !== "") {
if(prop != 'tracks') {
collection[id][prop] = value;
} else {
collection[id].tracks.push(value);
}
} else {
console.log('deleting');
delete collection[id][prop];
}
return collection;
}
greg
@wearenotgroot
Feb 17 2016 08:18
@chaitanyaashtekar but they are there
chaitanya ashtekar
@chaitanyaashtekar
Feb 17 2016 08:19
@wearenotgroot ok
greg
@wearenotgroot
Feb 17 2016 08:20
@chaitanyaashtekar the name of the catergory is Basic front end and advanced Front end
bitgrower
@bitgrower
Feb 17 2016 08:20
@chaitanyaashtekar -- they are mostly all still there ...
greg
@wearenotgroot
Feb 17 2016 08:20
@chaitanyaashtekar the only thing that was remove was camper news i think
bitgrower
@bitgrower
Feb 17 2016 08:20
they removed one and added the "tribute" challenge ...
right, @wearenotgroot
chaitanya ashtekar
@chaitanyaashtekar
Feb 17 2016 08:21
@wearenotgroot @bitgrower ok.thanks.and nothing else was removed ? where can i find about the changes made in github,wiki ?? thanks
CamperBot
@camperbot
Feb 17 2016 08:21
chaitanyaashtekar sends brownie points to @wearenotgroot and @bitgrower :sparkles: :thumbsup: :sparkles:
:star: 551 | @bitgrower | http://www.freecodecamp.com/bitgrower
:star: 875 | @wearenotgroot | http://www.freecodecamp.com/wearenotgroot
Anita Leung
@anitaleung
Feb 17 2016 08:22
@wearenotgroot okay makes sense, I thought I leaving the return "No such property" inside the for loop would stop the code prematurely, but it makes sense that there should only be one match to a firstName.
@mateusfccp I'm on a different problem :)
greg
@wearenotgroot
Feb 17 2016 08:23
@anitaleung well it is inside the first if that test the firstName so you know the contact exist
@chaitanyaashtekar trying to find the post :smile:
chaitanya ashtekar
@chaitanyaashtekar
Feb 17 2016 08:24
@wearenotgroot tell me if you find any :smile:
@wearenotgroot ok
chaitanya ashtekar
@chaitanyaashtekar
Feb 17 2016 08:28
@wearenotgroot thanks
CamperBot
@camperbot
Feb 17 2016 08:28
chaitanyaashtekar sends brownie points to @wearenotgroot :sparkles: :thumbsup: :sparkles:
:warning: chaitanyaashtekar already gave wearenotgroot points
Feb 17 2016 08:32
Hello guys. I need a little help here
Markus Kiili
@Masd925
Feb 17 2016 08:34
Feb 17 2016 08:36
Ok
how do you return the number that was removed?
Abhishek Kumar
@abhishekKumar1
Feb 17 2016 08:37
help .shift
CamperBot
@camperbot
Feb 17 2016 08:37

# Manipulate Arrays With shift()

shift() removes the first element unlike pop() which removes the last.

Abhishek Kumar
@abhishekKumar1
Feb 17 2016 08:37
Feb 17 2016 08:39
Thanks @abhishekKumar1
CamperBot
@camperbot
Feb 17 2016 08:39
yadesesan sends brownie points to @abhishekkumar1 :sparkles: :thumbsup: :sparkles:
:star: 341 | @abhishekkumar1 | http://www.freecodecamp.com/abhishekkumar1
Manan Kalra
@manankalra
Feb 17 2016 08:58
need help!

// Setup
var myObj = {
pet: "kitten",
bed: "sleigh"
};

function checkObj(checkProp) {

if(myObj.hasOwnProperty("checkProp")){
return myObj.checkProp;
}
else{
}
}

// Test your code by modifying these values

Abhishek Kumar
@abhishekKumar1
Feb 17 2016 08:59
remove the "" from checkProp and try
Elior Boukhobza
@mallowigi
Feb 17 2016 09:00
you are passing checkProp, which is a string, yet you are wrapping it in quotes
Manan Kalra
@manankalra
Feb 17 2016 09:00
tried! doesn't work!
Elior Boukhobza
@mallowigi
Feb 17 2016 09:00
besides, when you are calling myObj.checkProp, you are asking for the property called "checkProp"
you need to use brackets
Aleksander Gębicki
@Takumar
Feb 17 2016 09:01
@mananKalra checkProp is a variable which contains string which is name of property, that is why you have to treat it in special way, not like name of property. You should use bracket notation for accessing its value as @mallowigi said.
myObj[checkProp];
Manan Kalra
@manankalra
Feb 17 2016 09:04
Got it!
Thank you @Takumar @mallowigi @abhishekKumar1
CamperBot
@camperbot
Feb 17 2016 09:04
manankalra sends brownie points to @takumar and @mallowigi and @abhishekkumar1 :sparkles: :thumbsup: :sparkles:
:star: 56 | @mallowigi | http://www.freecodecamp.com/mallowigi
:star: 2331 | @takumar | http://www.freecodecamp.com/takumar
:star: 342 | @abhishekkumar1 | http://www.freecodecamp.com/abhishekkumar1
Aleksander Gębicki
@Takumar
Feb 17 2016 09:04
@mananKalra you are welcome :-)
Manan Kalra
@manankalra
Feb 17 2016 09:05
One more thing, when the object myObj is declared, shouldn't the propert names like gift, pet etc. be enclosed within quotes?
Vick003
@Vick003
Feb 17 2016 09:07
@mananKalra they don't have to be but it's recommended that you do... to my knowledge
Manan Kalra
@manankalra
Feb 17 2016 09:09
Alright! @Vick003
Pedro Abel Díaz Sánchez
@coderHook
Feb 17 2016 09:20
@Abel1987
Does somebody know why I am getting my string inversed in the calculator text-box? If I set this outside the text box, in a div for instance it shows it the correct way.
http://codepen.io/DiazPedroAbel/pen/pgRXWv?editors=1010
Someone (I cannot remember who and I cannot see previous mentions :S) told me that I have to treat op similar way as current, but I don't see how to do it, in fact, I thought I was treating both similar way by adding them to the string. eval() works perfect so...
Russell Wheatley
@Rusticman
Feb 17 2016 09:26
Hey everybody, I'm currently trying to get the geolocation as part of the local weather task (zipline). I'm using the jQuery get method, and I've tried ---> http://ipinfo.io and ---> https://freegeoip.net/json/ . The problem is, they're only able to get the location of my country (United Kingdom) and not the name of my city (Liverpool), this is a problem because it's supposed to be local weather! Does anyone have any recommendations for another server? Thanks :)
Jimmy Yew
@Jimyew
Feb 17 2016 09:37
///
Dulshani Gunawardhana
@dshgna
Feb 17 2016 10:07
@Rusticman: Use the built-in navigator function http://www.freecodecamp.com/challenges/get-geolocation-data
Nick Svanidze
@nikasvan
Feb 17 2016 10:07
Hi guys, is something wrong with return Math.random();? Shouldn't it return decimal? Generate Random Fractions with JavaScript
Dulshani Gunawardhana
@dshgna
Feb 17 2016 10:11
@nikasvan yes it should. What is your output?
Feb 17 2016 10:13
@nikasvan It should return decimal. Nothing is wrong with return Math.random(); in the exercise .
Nick Svanidze
@nikasvan
Feb 17 2016 10:13
Whoaa, it works now ) It returned 0 for some reason but I just opened it in new tab and seems to work now. Strange)
Feb 17 2016 10:14
@nikasvan Cool :)
Dulshani Gunawardhana
@dshgna
Feb 17 2016 10:14
@nikasvan great
Abhishek Kumar
@abhishekKumar1
Feb 17 2016 10:14
0 is inclusive in the result so it can return 0
Feb 17 2016 10:15
@nikasvan as @abhishekKumar1 mentioned, Math.random() returns a random number from 0 (inclusive) up to but not including 1 (exclusive).
Nick Svanidze
@nikasvan
Feb 17 2016 10:18
Ahaa, thanks so that there was a reasoning behind the 0. Tricky 0 got me again DOH!
Mohamed Hamza
@mohamedhamza1995
Feb 17 2016 10:49
function multiplyAll(arr) {
var product = 1;
// Only change code below this line
for(var i = 0 ; i <arr.length;i++ ){
for(var j = 0 ; j < arr.length;j++){
product*=arr[i][j];
}
}
// Only change code above this line
return product;
}

// Modify values below to test your code
multiplyAll([[1,2],[3,4],[5,6,7]]);
how can I multiply each array with the product in the for loop in this code?
Abhishek Kumar
@abhishekKumar1
Feb 17 2016 10:50
in second loop try j<arr[i].length
@Yuvraj1989
Feb 17 2016 10:58
@mohamedhamza1995 you should loop j variable according i....
Mia Giovanetti
@miagiovanetti
Feb 17 2016 10:59
hi, can someone help me with my code? The instructions are to retrive the second tree from the variable myPlants using object dot and array bracket notation..

// Setup
var myPlants = [
{
type: "flowers",
list: [
"rose",
"tulip",
"dandelion"
]
},
{
type: "trees",
list: [
"fir",
"pine",
"birch"
]
}
];

// Only change code below this line

var secondTree = myPlants.trees.list[1]; // Change this line

when i put trees or list in bracket notation, i get a prompt saying that both are better in dot notation
Abhishek Kumar
@abhishekKumar1
Feb 17 2016 11:01
@miagiovanetti think it through myPlants is an array so you can't access it using .trees correct it and you will get the answer
use like you used to find pine from list which is also an array
Mia Giovanetti
@miagiovanetti
Feb 17 2016 11:03
thanks @abhishekKumar1 , im giving it a try right now!
CamperBot
@camperbot
Feb 17 2016 11:03
miagiovanetti sends brownie points to @abhishekkumar1 :sparkles: :thumbsup: :sparkles:
:star: 343 | @abhishekkumar1 | http://www.freecodecamp.com/abhishekkumar1
Mohamed Hamza
@mohamedhamza1995
Feb 17 2016 11:05
@Yuvraj1989 @abhishekKumar1 thanks alot!
CamperBot
@camperbot
Feb 17 2016 11:05
mohamedhamza1995 sends brownie points to @yuvraj1989 and @abhishekkumar1 :sparkles: :thumbsup: :sparkles:
:star: 250 | @yuvraj1989 | http://www.freecodecamp.com/yuvraj1989
:star: 344 | @abhishekkumar1 | http://www.freecodecamp.com/abhishekkumar1
Mia Giovanetti
@miagiovanetti
Feb 17 2016 11:06
@abhishekKumar1 i got it now, thank you!!
Robert Uivarosi
@URobert
Feb 17 2016 11:19
@h4r1m4u Thanks
CamperBot
@camperbot
Feb 17 2016 11:19
urobert sends brownie points to @h4r1m4u :sparkles: :thumbsup: :sparkles:
:star: 1423 | @h4r1m4u | http://www.freecodecamp.com/h4r1m4u
T N Surender
@tnsurender
Feb 17 2016 12:24
Hi Guys, Stuck in exercise 223

// Setup
var myPlants = [
{
type: "flowers",
list: [
"rose",
"tulip",
"dandelion"
]
},
{
type: "trees",
list: [
"fir",
"pine",
"birch"
]
}
];

// Only change code below this line

var secondTree = myPlants.trees1; // Change this line

This is the question : Retrieve the second tree from the variable myPlants using object dot and array bracket notation.
Codemzy
@codemzy
Feb 17 2016 12:26
@tnsurender try var secondTree = myPlants[1].list[1];
T N Surender
@tnsurender
Feb 17 2016 12:27
@codemzy thanks alot
CamperBot
@camperbot
Feb 17 2016 12:27
tnsurender sends brownie points to @codemzy :sparkles: :thumbsup: :sparkles:
:star: 611 | @codemzy | http://www.freecodecamp.com/codemzy
T N Surender
@tnsurender
Feb 17 2016 12:27
it worked
Codemzy
@codemzy
Feb 17 2016 12:27
@tnsurender myPlants is an array and both 'flowers' and 'trees' are objects, but also elements of the array, so you can access 'trees' as the second object with myPlants[1]
@tnsurender then you use dot notation to get list, and then get the second item from list (which is also an array) with [1] ... hope that makes sense to you how I got the answer?
T N Surender
@tnsurender
Feb 17 2016 12:28
@codemzy Ya it makes sense now ...
@codemzy It like accessing a multidimensional array...
Codemzy
@codemzy
Feb 17 2016 12:29
@tnsurender :thumbsup:
anthonygallina1
@anthonygallina1
Feb 17 2016 12:32
@codemzy :)
:point_up:
Codemzy
@codemzy
Feb 17 2016 12:33
@anthonygallina1 :wave:
edwardmyung
@edwardmyung
Feb 17 2016 12:57

For a function which takes a queue, adds item on end, and removes + returns first item - is there a problem with the following:

function queue(arr, item) {
arr = arr.push(item);
var x = arr.shift();
return x;
}

I'm getting "arr.shift is not a function"

CorwinHicks
@CorwinHicks
Feb 17 2016 12:57
Hi i am having a hard time understanding setters and getters for Javascript.
Russell Wheatley
@Rusticman
Feb 17 2016 12:57
@dshgna thanks for the heads-up regarding geo location :)
CamperBot
@camperbot
Feb 17 2016 12:57
rusticman sends brownie points to @dshgna :sparkles: :thumbsup: :sparkles:
:star: 144 | @dshgna | http://www.freecodecamp.com/dshgna
Codemzy
@codemzy
Feb 17 2016 13:02
@edwardmyung its because here arr = arr.push(item); maybe, you are turning arr into something else... just have arr.push(item);on that line to push the item to the array
@edwardmyung as in get rid of the arr =
Stanley
@stanleyyylau
Feb 17 2016 13:04
function diff(arr1, arr2) {
var newArr = [];
// Same, same; but different.
var arr1Length=arr1.length;
var arr2Length=arr2.length;
var longerArr=[];
var shorterArr=[];
if(arr1Length>arr2Length){
longerArr=arr1;
shorterArr=arr2;
} else if(arr2Length>arr1Length){
longerArr=arr2;
shorterArr=arr1;
}
var longerArrLength=longerArr.length;
if (arr1Length===0){
newArr=arr2;
}
else if(arr2Length===0){
newArr=arr1;
}
else{
for (var i=0; i<longerArrLength; i++){
if(shorterArr.indexOf(longerArr[i])<0){
newArr=newArr.push(longerArr[i]);
}
}
}

return newArr;
}

diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);
my code don't work
can someone help
i spend two days still can't figure this out
edwardmyung
@edwardmyung
Feb 17 2016 13:04
@codemzy Makes perfect sense! Thanks!
CamperBot
@camperbot
Feb 17 2016 13:04
edwardmyung sends brownie points to @codemzy :sparkles: :thumbsup: :sparkles:
:star: 613 | @codemzy | http://www.freecodecamp.com/codemzy
Elior Boukhobza
@mallowigi
Feb 17 2016 13:06
newArr=newArr.push(longerArr[i]);
what's that?
Stanley
@stanleyyylau
Feb 17 2016 13:08
push a value to new array if the longer array has an value that shorter array don't have
Elior Boukhobza
@mallowigi
Feb 17 2016 13:09
so don't assign it, just push
push modifies the new array anyway
Stanley
@stanleyyylau
Feb 17 2016 13:10
oh,
i thought push only add new value to the end of an array
Elior Boukhobza
@mallowigi
Feb 17 2016 13:10
though i dont know if it is your problem
Stanley
@stanleyyylau
Feb 17 2016 13:11
i pass a few items now
i think i negelect the shorter array will also have some value that the longer array don't have
have to rewrite the code
Elior Boukhobza
@mallowigi
Feb 17 2016 13:13
what do you need to do ?
Stanley
@stanleyyylau
Feb 17 2016 13:14
loop again i think thanks @mallowigi
CamperBot
@camperbot
Feb 17 2016 13:14
stanleyyylau sends brownie points to @mallowigi :sparkles: :thumbsup: :sparkles:
:star: 58 | @mallowigi | http://www.freecodecamp.com/mallowigi
Stanley
@stanleyyylau
Feb 17 2016 13:14
i got it now thanks
Elior Boukhobza
@mallowigi
Feb 17 2016 13:14
you need to merge two arrays right ?
Fayheim
@Fayheim
Feb 17 2016 13:19
// Setup
var myArray = [[1,2,3], [4,5,6], [7,8,9], [[10,11,12], 13, 14]];

// Only change code below this line.
var myData = myArray [8][8];
Help! how do i get it equal to 8?
CamperBot
@camperbot
Feb 17 2016 13:19
no wiki entry for: how do i get it equal to 8
Fayheim
@Fayheim
Feb 17 2016 13:19
=.=
I really having trouble understanding the instruction
Blauelf
@Blauelf
Feb 17 2016 13:27
@Fayheim You are supposed to find the indexes for which the expression evaluates to 8.
So if myArray[1] is [4,5,6], and myArray[1][2] is 6, what would be needed to get a result of 8?
Stanley
@stanleyyylau
Feb 17 2016 13:27
@mallowigi passed now thanks
CamperBot
@camperbot
Feb 17 2016 13:27
stanleyyylau sends brownie points to @mallowigi :sparkles: :thumbsup: :sparkles:
:warning: stanleyyylau already gave mallowigi points
@danielmdesigns
Feb 17 2016 13:41
could someone be so kind to explain why a remainder operator works to check a string vs a number? im confused on why myNum % 1 >= 0 actually knows if my input was a string or a number?
Richard Andrews
@Whiplash5057
Feb 17 2016 13:41
Gramble Duke
@aront1981
Feb 17 2016 13:42
right. so, I've got to 'word blanks' and I don't get where to start? Can anyone give me a little direction please?
Richard Andrews
@Whiplash5057
Feb 17 2016 13:42
Hey guys ...why is my JS not working
need help !!
Selvalingam G
@selva2389
Feb 17 2016 13:42

// Setup
var myPlants = [
{
type: "flowers",
list: [
"rose",
"tulip",
"dandelion"
]
},
{
type: "trees",
list: [
"fir",
"pine",
"birch"
]
}
];

// Only change code below this line

var secondTree = myPlants.trees["1"];

can anyone help?
J Player
@Heyjp
Feb 17 2016 13:43
@SelvalingamG myPlants is an array, first step is to make sure you are selecting the right object in the array.
Selvalingam G
@selva2389
Feb 17 2016 13:43
"second tree from the variable myPlants using object dot and array bracket notation." --> myPlants.List["0"]; also not worked!!
Elior Boukhobza
@mallowigi
Feb 17 2016 13:44
@SelvalingamG please use markdown for pasting code (wrap your code with js )
greg
@wearenotgroot
Feb 17 2016 13:44
@danielmdesigns well the interpreter will do it's best to test if the variable you gave can be converted into a number
@danielmdesigns if it can be then it will perform the operation
@danielmdesigns if not then if will say Not a Number or NaN
J Player
@Heyjp
Feb 17 2016 13:45
@SelvalingamG forget objects for a moment - if you were selecting the second item in an array, how would you write it?
Selvalingam G
@selva2389
Feb 17 2016 13:46
Object.ArrayItemname['index'] -Is it correct?
Sebastian
@sebous
Feb 17 2016 13:46

function abTest(a, b) {
// Only change code below this line
if (a < 0 or b < 0) {
return undefined;
}

// Only change code above this line

return Math.round(Math.pow(Math.sqrt(a) + Math.sqrt(b), 2));
}

is it ok<
?
J Player
@Heyjp
Feb 17 2016 13:47
if you took away "Object." then yes it would be
@danielmdesigns
Feb 17 2016 13:47
@wearenotgroot ahhhhh.... duhhh. ok. so a number will produce a number greater than or less than zero. a string will produce NaN
J Player
@Heyjp
Feb 17 2016 13:48
once you have the right item in the array selected, then you can begin to use dot notation afterwards
greg
@wearenotgroot
Feb 17 2016 13:48
@danielmdesigns no
@danielmdesigns
Feb 17 2016 13:48
i mean greater than or equal to 0 @wearenotgroot
greg
@wearenotgroot
Feb 17 2016 13:48
@danielmdesigns if the number is surrounded by "" or '' the interpreter will see if it can be converted into a number.
kirbyedy
@kirbyedy
Feb 17 2016 13:48
@sebous or ? like that?
Selvalingam G
@selva2389
Feb 17 2016 13:49
In my case i need to access throught object, right? var 'myPlants = [
{ type: "flowers",
list: [
"rose",
"tulip",
"dandelion"
] }, {
type: "trees",
list: [
"fir",
"pine",
"birch"
]
}
];'
myPlants.list2; - is it ok?
greg
@wearenotgroot
Feb 17 2016 13:49
@danielmdesigns if it cannot be converted then it will give you NaN
Sebastian
@sebous
Feb 17 2016 13:49
@kirbyedy well if A or B is less than 0 then it should just return undefined value
Zachary Vacek
@zacharyvacek
Feb 17 2016 13:50
Hello all, I'm working on the "check for Palindomes" challenge and almost have it working pretty well. But I can't seem to get my replace method to replace undercore characters. If anyone can point me in the right direction I'd appreciate it greatly.
function palindrome(str) {
//create a newString for later comparison with str
//on newString, lower case it, split it, reverse it, join it again, and replace all alphanumeric characters.
var newString = str.toLowerCase().split("").reverse().join("").replace(/\_\W/gi, "");

//on original str, lower case it, and replace all alphanumeric characters
str = str.toLowerCase().replace(/\_\W/gi, "");
console.log(str);

//compare original str with newString
if (newString === str) {;
console.log(true);
} else {
console.log(false);
}
}
palindrome("0_0 (: /-\ :) 0-0");
Sebastian
@sebous
Feb 17 2016 13:50
im not sure what im doing wrong
@danielmdesigns
Feb 17 2016 13:50
@wearenotgroot sweet. so '2' would return as a num
Blauelf
@Blauelf
Feb 17 2016 13:50
@SelvalingamG The object holding the flowers is myPlants[0], so what is the object holding the trees?
J Player
@Heyjp
Feb 17 2016 13:50
wiki forma
CamperBot
@camperbot
Feb 17 2016 13:50

## :point_right: code formatting [wiki]

### Inline code

This an inline <paste code here> code formatting with a single backtick() at start and end around the code.

### Code Block

js ⇦ Type 3 backticks and then press [shift + enter ⏎] (type js or html or css)

then press [shift + enter ⏎]

 ⇦ Type 3 backticks, then press [enter ⏎]

See also: ☛ How to type Backticks | ☯ Compose Mode | ❄ Gitter Formatting Basics

kirbyedy
@kirbyedy
Feb 17 2016 13:50
OR is wrong there is a sign for that
greg
@wearenotgroot
Feb 17 2016 13:50
@danielmdesigns yep.
J Player
@Heyjp
Feb 17 2016 13:50
wiki format
CamperBot
@camperbot
Feb 17 2016 13:50

## :point_right: code formatting [wiki]

### Inline code

This an inline <paste code here> code formatting with a single backtick() at start and end around the code.

### Code Block

js ⇦ Type 3 backticks and then press [shift + enter ⏎] (type js or html or css)

then press [shift + enter ⏎]

 ⇦ Type 3 backticks, then press [enter ⏎]

See also: ☛ How to type Backticks | ☯ Compose Mode | ❄ Gitter Formatting Basics

J Player
@Heyjp
Feb 17 2016 13:50
oops
Sebastian
@sebous
Feb 17 2016 13:50
@kirbyedy oh i forgot, thanks tou
CamperBot
@camperbot
Feb 17 2016 13:50
sebous sends brownie points to @kirbyedy :sparkles: :thumbsup: :sparkles:
:star: 484 | @kirbyedy | http://www.freecodecamp.com/kirbyedy
greg
@wearenotgroot
Feb 17 2016 13:51
@danielmdesigns just becareful how you do things. if the variable is supposed to be a number then it should be a number
@danielmdesigns
Feb 17 2016 13:52
@wearenotgroot gotcha! ok... that lil test just did not make sense to me originally - but makes perfectly good sense now. thanks for explaining. ive got like a toddler brain i guess
CamperBot
@camperbot
Feb 17 2016 13:52
danielmdesigns sends brownie points to @wearenotgroot :sparkles: :thumbsup: :sparkles:
:star: 882 | @wearenotgroot | http://www.freecodecamp.com/wearenotgroot
greg
@wearenotgroot
Feb 17 2016 13:53
@danielmdesigns YW
Selvalingam G
@selva2389
Feb 17 2016 13:53
@Blauelf Got it :smile: myPlants[1].list[1];
Blauelf
@Blauelf
Feb 17 2016 13:54
:)
Gramble Duke
@aront1981
Feb 17 2016 13:58
Never Mind. I over thought the challenge.
William
@apswak
Feb 17 2016 13:59
Anyone got any tips for "Caesars Cipher"? Don't know where to get started
greg
@wearenotgroot
Feb 17 2016 14:00
@kreitzo here ------->http://www.asciitable.com/
William
@apswak
Feb 17 2016 14:01
Thanks @wearenotgroot , looking now
CamperBot
@camperbot
Feb 17 2016 14:01
kreitzo sends brownie points to @wearenotgroot :sparkles: :thumbsup: :sparkles:
:star: 883 | @wearenotgroot | http://www.freecodecamp.com/wearenotgroot
greg
@wearenotgroot
Feb 17 2016 14:01
@kreitzo :smile: GL
William
@apswak
Feb 17 2016 14:02
@wearenotgroot this seem slike a big step up from the other challenges, is it? or does it just appear more complicated
greg
@wearenotgroot
Feb 17 2016 14:02
@kreitzo not really
@kreitzo just dont overcomplicate thing and you'll be fine
Eric
@rasliche
Feb 17 2016 14:05
Anyone care to PM me their Caesars Cipher solution? I solved it, and I like most of my solution but it feels hacky and I'd like to see someone's solution that actually used the String.getCharAt() methods mentioned.
William
@apswak
Feb 17 2016 14:05
I finished
Andrew Egorcev
@ttchopper
Feb 17 2016 14:07
Hey guys! Is my solution for "Where do i belong" bonfire valid???
function where(arr, num) {
// Find my place in this sorted array.
return arr.concat(num).sort(function (a, b) {
return a - b;
}).indexOf(num);
}
kirbyedy
@kirbyedy
Feb 17 2016 14:07
@ttchopper does it passes ?
Andrew Egorcev
@ttchopper
Feb 17 2016 14:08
@kirbyedy yeah
kirbyedy
@kirbyedy
Feb 17 2016 14:08
so its valid :)
Claudio Roberto Pereira Goncalves
@Claudiogoncalves
Feb 17 2016 14:08
Nesting For Loops
help
CamperBot
@camperbot
Feb 17 2016 14:08

### Basic Commands:

• find TOPIC find all entries about topic. ex: find js
• wiki TOPIC show contents of topic page
• thanks @username send brownie points to another user
• Algorithm BONFIRENAME info on a Algorithm

:speech_balloon: meet CamperBot in this room!

Andrew Egorcev
@ttchopper
Feb 17 2016 14:09
@kirbyedy oki doki)))
Claudio Roberto Pereira Goncalves
@Claudiogoncalves
Feb 17 2016 14:14
help Nesting For Loops
CamperBot
@camperbot
Feb 17 2016 14:14

# Challenge: Nesting For Loops

If you have a multi-dimensional array, you can use the same logic as the prior Challenge to loop through both the array and any sub-arrays. Here is an example:

var arr = [
[1,2], [3,4], [5,6]
];
for (var i=0; i < arr.length; i++) {
for (var j=0; j < arr[i].length; j++) {
console.log(arr[i][j]);
}
}

This outputs each sub-element in arr one at a time. Note that for the inner loop, we are checking the .length of arr[i], since arr[i] is itself an array.
:pencil: read more about challenge nesting for loops on the FCC Wiki

Mateus Felipe C. C. Pinto
@mateusfccp
Feb 17 2016 14:31
@Claudiogoncalves Você já resolveu teu problema?
William
@apswak
Feb 17 2016 14:40
finally got Ceasars Cipher code to work for all challenges
function rot13(str) {
return str.replace(/([a-z])/ig,
function(hi) {
var c = hi.charCodeAt(0);
return String.fromCharCode(c >= 97 ?
(c + 13 + 26 - 97) % 26 + 97
: (c + 13 + 26 - 65) % 26 + 65);
});
}
Lê Thành
@Luvata
Feb 17 2016 14:41
This message was deleted