-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path032.js
85 lines (73 loc) · 1.77 KB
/
032.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
/*
Diberikan sebuah function operasiMatriks yang menerima parameter dua buah array
dua dimensi dan operator matematika.
Dimana jika parameter operator matematika adalah '+' maka dua array tersebut ditambahkan
dan jika parameter operator matematika adalah '-' maka dua array tersebut dikurangkan
NOTE: operator matematika yang diterima hanya '+' dan '-'
contoh :
input:
arr1:
[
[5, 4, 7],
[3, 9, 3],
[8, 3, 2]
]
arr2:
[
[5, 4, 8],
[1, 9, 3],
[8, 2, 2]
]
operator: '+'
Proses:
[
[5+5, 4+4, 7+8],
[3+1, 9+9, 3+3],
[8+8, 3+2, 2+2]
]
Output:
[ [ 10, 8, 15 ], [ 4, 18, 6 ], [ 16, 5, 4 ] ]
NOTE:
- ASUMSI JUMLAH BARIS DAN KOLOM arr1 dan arr2 HARUS SAMA
- Jika jumlah kolom atau jumlah baris dari kedua array berbeda maka
RETURN 'Invalid array'
RULES:
- DILARANG menggunakan built-in function .map, .filter, .reduce
*/
function oeprasiMatriks(arr1, arr2, operator) {
var result = []
for (var i in arr1){
var temp = [];
for (var j in arr2){
if (arr1[i].length !== arr2[i].length){
return 'Invalid array'
}
else if (operator === '+'){
temp.push(arr1[i][j] + arr2[i][j])
}
else if (operator === '-'){
temp.push(arr1[i][j] - arr2[i][j])
}
}
result.push(temp)
}
return result
}
console.log(oeprasiMatriks([
[5, 4, 7],
[3, 9, 3],
[8, 3, 2]
],[
[5, 4, 8],
[1, 9, 3],
[8, 2, 2]
],"+"));// [ [ 10, 8, 15 ], [ 4, 18, 6 ], [ 16, 5, 4 ] ]
console.log(oeprasiMatriks([
[5, 4, 7],
[3, 9, 3],
[8, 3, 2]
],[
[5, 4, 8],
[1, 9, 3,5],
[8, 2, 2]
],"+")); // kedua matriks tidak dapat diperasikan