Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα,

έχω δημιουργήσει ενα πίνακα στη java script  με αρνητίκες και θετικές τιμές και θέλω να προθέσω μονο τσ θέτικες τιμες του πίνακα αλλα έχει πάει τελείως λαθος,

Γνωρίζω οτι το θέμα βρίσκεται στην for αλλά δεν μπορώ να το διορθώσω καμία ιδεα?

 

<!DPCTYPE HTML>
<html lang="en">
    <head>
<meta charset="UTF-8">
<title>page 1</title>
  </head>      
<body>
<h2>Sum and Multi</h2>
<script>
var array=[5,17,-38,9,-6,22,-90,14,26,-12];
var sum=0;
for (i=0;i>=0;i++){
sum=sum+array;
}
document.write("Tο άθροισμα των θετικών αριθμών είναι"+sum+"<br>");
    </script>

Επεξ/σία από Kyrki
Δημοσ. (επεξεργασμένο)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce και κανε προσθεση μονο οσες τιμες ειναι > 0

περαν αυτου, το πας συντακτικα λαθος με την for. Θα μπορουσες να το κανεις με array.forEach αλλα ο απο πανω τροπος ειναι ο σωστος.

Επεξ/σία από Predatorkill
Δημοσ.

Έχεις λάθος τη συνθήκη τερματισμού του for.

Έχεις λάθος την πρόσθεση.

Και τέλος, λες ότι θέλεις να προσθέσεις μόνο τα θετικά αλλά δεν υπάρχει απολύτως τίποτα στον κώδικα που να κάνει τέτοιο πράγμα.

Πιθανόν νομίζεις ότι το κάνεις αυτό το πράγμα στη συνθήκη της for? Δεν ξέρω. Πάντως το σίγουρο είναι ότι πρέπει να ξαναδιαβάσεις ξεκινώντας από τα πολύ βασικά, πώς γράφουμε μια for.

Δημοσ.

και γιατί δεν χρησιμοποιείς array.reduce;

http://104.236.83.163/array_reduce.html

<!DOCTYPE HTML>
<html lang="en">
    <head>
		<meta charset="UTF-8">
		<title>Array Reduce</title>
	</head>      
	<body>
		<h2>Sum and Multi</h2>
		<script>
			var array = [5,17,-38,9,-6,22,-90,14,26,-12];
			document.write(array.reduce((acc, val)=>{return val>0?acc+val:acc}));
		</script>
	</body>
</html>

 

  • Like 1
Δημοσ.

Ευχαριστώ για τις απαντήσεις !

Αυτό που έκανα εν τέλη είναι να διαχώρισω θετίκα και αρνητικά δεξία και αριστερά και εδω στην for το length του πίνακα, από το κελί 0 εως το κελί που τελειωνουν οι θετικοί!

Το αποτέλεσμα βγηκε!

 

Στις 19/11/2018 στις 6:08 ΜΜ, ajaxmonkey4hire είπε

και γιατί δεν χρησιμοποιείς array.reduce;

http://104.236.83.163/array_reduce.html


<!DOCTYPE HTML>
<html lang="en">
    <head>
		<meta charset="UTF-8">
		<title>Array Reduce</title>
	</head>      
	<body>
		<h2>Sum and Multi</h2>
		<script>
			var array = [5,17,-38,9,-6,22,-90,14,26,-12];
			document.write(array.reduce((acc, val)=>{return val>0?acc+val:acc}));
		</script>
	</body>
</html>

Το array reduce πως ακριβώς χρησιμοπηείται?

Εννοώ ποια ειναι η ιδιοτητα του?

 

Δημοσ. (επεξεργασμένο)

Το array reduce συμπυκνώνει ένα array σε μια τιμή. Κάνει δηλαδή ακριβώς αυτό που θέλεις.

Η function που του δίνεις του λέει με ποιον τρόπο να κάνει την συμπύκνωση. Μετά απλά εκτελεί την function για κάθε array element με παραμέτρους το προσωρινό αποτέλεσμα (acc) και την επόμενη τιμή (val). Το τελικό αποτέλεσμα επιστρέφεται με το return value.

Επεξ/σία από ajaxmonkey4hire
Δημοσ.
5 ώρες πριν, Kyrki είπε

Ευχαριστώ για τις απαντήσεις !

Αυτό που έκανα εν τέλη είναι να διαχώρισω θετίκα και αρνητικά δεξία και αριστερά και εδω στην for το length του πίνακα, από το κελί 0 εως το κελί που τελειωνουν οι θετικοί!

Το αποτέλεσμα βγηκε!

Το array reduce πως ακριβώς χρησιμοπηείται?

Εννοώ ποια ειναι η ιδιοτητα του?

Δυο λινκ σου δωσαμε, rtfm, μην τα περιμενεις ολα στο πιατο. Σου δωσαμε 2 διαφορετικες και σωστες λυσεις αλλα προτιμησες να πας μεσω Λαμιας για να παρεις αυτο που θες. Whatever

  • Thanks 1
Δημοσ.
6 ώρες πριν, Kyrki είπε

Ευχαριστώ για τις απαντήσεις !

Αυτό που έκανα εν τέλη είναι να διαχώρισω θετίκα και αρνητικά δεξία και αριστερά και εδω στην for το length του πίνακα, από το κελί 0 εως το κελί που τελειωνουν οι θετικοί!

Το αποτέλεσμα βγηκε!

Αν μαθαίνεις προγραμματισμό για hobby το κάνεις όπως γουστάρεις αν όμως σκοπεύεις να ασχοληθείς επαγγελματικά με τον προγραμματισμό αυτή η λύση είναι (no offense) απαράδεκτη!

Έφτιαξες μια loop για να αναδιοργανώσεις το array βάση του πρόσημου των τιμών και μετά άλλο ένα  loop για να προσθέσεις τις τιμές στο αριστερό μέρος του καινούργιου array. Γιατί;

Τι θα έκανες αν είχες ένα array με 10 εκατομμύρια οbjects καθένα από αυτά με ύψος, βάρος, ηλικία ενός ατόμου και το ζητούμενο ήταν να βρεις τα max, min και avg για το  ύψος, βάρος, bmi και την ηλικία από όλα τα στοιχεία; Το array.reduce υπάρχει για τέτοιες περιπτώσεις αρκεί να διαβάσεις την docu.

Δημοσ.
20 ώρες πριν, ajaxmonkey4hire είπε

Αν μαθαίνεις προγραμματισμό για hobby το κάνεις όπως γουστάρεις αν όμως σκοπεύεις να ασχοληθείς επαγγελματικά με τον προγραμματισμό αυτή η λύση είναι (no offense) απαράδεκτη!

Έφτιαξες μια loop για να αναδιοργανώσεις το array βάση του πρόσημου των τιμών και μετά άλλο ένα  loop για να προσθέσεις τις τιμές στο αριστερό μέρος του καινούργιου array. Γιατί;

Τι θα έκανες αν είχες ένα array με 10 εκατομμύρια οbjects καθένα από αυτά με ύψος, βάρος, ηλικία ενός ατόμου και το ζητούμενο ήταν να βρεις τα max, min και avg για το  ύψος, βάρος, bmi και την ηλικία από όλα τα στοιχεία; Το array.reduce υπάρχει για τέτοιες περιπτώσεις αρκεί να διαβάσεις την docu.

Δε διαφωνω καθολου, απλα ειναι ασκηση απο τη σχολη και το ηθελαν ετσι!

22 ώρες πριν, Predatorkill είπε

Δυο λινκ σου δωσαμε, rtfm, μην τα περιμενεις ολα στο πιατο. Σου δωσαμε 2 διαφορετικες και σωστες λυσεις αλλα προτιμησες να πας μεσω Λαμιας για να παρεις αυτο που θες. Whatever

Οπως ειπα παρακατω τ θελαν ετσι απο τη σχολη!

εχω κανα μηνα που ασχολουμαι οποτε δικαιολογουμε πιστευω!

Δημοσ. (επεξεργασμένο)
11 λεπτά πριν, Kyrki είπε

εχω κανα μηνα που ασχολουμαι οποτε δικαιολογουμε πιστευω!

Δικαιολογεισαι να μην καταλαβαινεις ακομα  καποια πραγματα, συγκεκριμενα ομως για την javascript το documentation ειναι πολυ καλο με πολλα παραδειγματα, αυτο που ειχες να κανεις ειναι να πας στο section arrays, να πατησεις ολα τα λινκς μεχρι να βρεις αυτο που κανει τη δουλεια. 

Επιβαλεται να μαθεις να χρησιμοποεις τα docs, ειτε ειναι library/module/framework/ js syntax

Επεξ/σία από Predatorkill

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...