-
Notifications
You must be signed in to change notification settings - Fork 0
/
foreach.js
114 lines (94 loc) · 3.35 KB
/
foreach.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
Write a function called doubleValues which accepts an array and returns a new array with all the values in the array passed to the function doubled
Examples:
doubleValues([1,2,3]) // [2,4,6]
doubleValues([5,1,2,3,10]) // [10,2,4,6,20]
*/
function doubleValues(arr){
var newArray = [];
arr.forEach(function(value) {
newArray.push(value * 2);
});
return newArray;
}
console.log(doubleValues([1,2,3]));
/*
Write a function called onlyEvenValues which accepts an array and returns
// a new array with only the even values in the array passed to the function
Examples:
onlyEvenValues([1,2,3]) // [2]
onlyEvenValues([5,1,2,3,10]) // [2,10]
*/
function onlyEvenValues(arr){
var newArray = [];
arr.forEach(function(value) {
if (value % 2 === 0) {
newArray.push(value);
}
});
return newArray;
}
console.log(onlyEvenValues([1,2,3]));
/*
Write a function called showFirstAndLast which accepts an array of
strings and returns a new array with only the first and last character of each string.
Examples:
showFirstAndLast(['colt','matt', 'tim', 'udemy']) // ["ct", "mt", "tm", "uy"]
showFirstAndLast(['hi', 'goodbye', 'smile']) // ['hi', 'ge', 'se']
*/
function showFirstAndLast(arr){
var newArray = [];
arr.forEach(function(value) {
newArray.push(value.charAt(0) + value.charAt(value.length - 1));
// or newArray.push(value[0] + value[value.length - 1]);
});
return newArray;
}
console.log(showFirstAndLast(['colt','matt', 'tim', 'udemy']));
/*
Write a function called addKeyAndValue which accepts an array of objects,
a key, and a value and returns the array passed to the function with the
new key and value added for each object
Examples:
addKeyAndValue([{name: 'Elie'}, {name: 'Tim'}, {name: 'Matt'}, {name: 'Colt'}], 'title', 'instructor')
// [{name: 'Elie', title:'instructor'}, {name: 'Tim', title:'instructor'}, {name: 'Matt', title:'instructor'}, {name: 'Colt', title:'instructor'}]
*/
function addKeyAndValue(arr,key,value){
arr.forEach(function(element) {
element[key] = value;
});
return arr;
}
console.log(addKeyAndValue([{name: 'Elie'}, {name: 'Tim'}, {name: 'Matt'}, {name: 'Colt'}], 'title', 'instructor') );
/*
Write a function called vowelCount which accepts a string and returns an object
with the keys as the vowel and the values as the number of times the vowel appears
in the string. This function should be case insensitive so a lowercase letter
and uppercase letter should count
Examples:
vowelCount('Elie') // {e:2,i:1};
vowelCount('Tim') // {i:1};
vowelCount('Matt') // {a:1})
vowelCount('hmmm') // {};
vowelCount('I Am awesome and so are you') // {i: 1, a: 4, e: 3, o: 3, u: 1};
*/
function vowelCount(str){
str = str.toLowerCase().split('');
var obj = {};
var vowels = ['a', 'e', 'i', 'o', 'u'];
// or -> save vowels as a string aeiou and check vowels.indexOf(element) !== -1
str.forEach(function(element) {
vowels.forEach(function(vowel) {
if( element == vowel ) {
if( !(vowel in obj) ) {
obj[vowel] = 1;
} else {
obj[vowel] += 1;
}
}
});
});
return obj;
}
console.log(vowelCount('Elie') );
console.log(vowelCount('I Am awesome and so are you'));