προβλημα με split και join

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
sibas
Honorary Member
Δημοσιεύσεις: 1873
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

προβλημα με split και join

Δημοσίευση από sibas » 19 Απρ 2017 12:11

Έχω το εξής θέμα

υπάρχουν 2 ul

Κώδικας: Επιλογή όλων

<ul id="u1">
<li data-id="1"></li>
<li data-id="5"></li>
</ul>

<ul id="u2"></ul>

από μια php function πέρνω κάποιες τιμές και τις περνάω σε javascript

Κώδικας: Επιλογή όλων

var us = '1,2,3,4,5';
με την findulli βρίσκω αν προ υπάρχουν συγκεκριμένα li από την ul#u1 με το data-id και τα περνάω στο δευτερο ul#u2

Κώδικας: Επιλογή όλων

var us = '1,2,3,4,5';
function findulli&#40;us&#41;&#123;
var nu = us.split&#40;','&#41;,
newul = &#40;'ul2'&#41;,
di = false,
new_arr = new Array&#40;&#41;;

	for&#40;var i = 0; i < nu.length; ++i&#41;&#123;
		
		di = $&#40;'ul'&#41;.find&#40;'li&#91;data-id='+nu&#91;i&#93;+'&#93;'&#41;;
			if&#40;di&#41;&#123;
			di.clone&#40;&#41;.prependTo&#40;newul&#41;;
			// πως να βρώ αυτά που λείπουν?
			new_arr.push&#40;nu&#91;i&#93;&#41;;
			
			&#125;
	&#125;
	console.log&#40;nu+ ' new_arr-> '+new_arr&#41;;
&#125;
findulli&#40;us&#41;;
όλα καλά και όλα ανθηρά μέχρι εδώ!

Το πρόβλημα είναι πως (σε αυτή την περίπτωση) μου λείπουν το 2,3,4
πως να βρώ αυτές τις τιμές που λείπουν και να τις περάσω σαν join ή array έξω από το loop?

κάποια ιδέα?

sibas
Honorary Member
Δημοσιεύσεις: 1873
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

προβλημα με split και join

Δημοσίευση από sibas » 20 Απρ 2017 08:52

βρήκα λύση :D

Κώδικας: Επιλογή όλων

var us = '1,2,3,4,5';
function findulli&#40;us&#41;&#123;
var nu = us.split&#40;','&#41;,
newul = &#40;'ul2'&#41;,
di = false;

	for&#40;var i = 0; i < nu.length; ++i&#41;&#123;
		di = $&#40;'ul'&#41;.find&#40;'li&#91;data-id='+nu&#91;i&#93;+'&#93;'&#41;;
		if&#40;di&#41;&#123;
			di.clone&#40;&#41;.prependTo&#40;newul&#41;;
			var numid = di.attr&#40;'data-id'&#41;;
			if&#40;nu&#91;i&#93; == numid&#41; &#123;
				nu.splice&#40;i, 1&#41;;
			&#125;
		&#125;
	&#125;
	console.log&#40;'new nu-> '+nu&#41;;
&#125;
findulli&#40;us&#41;;
happy me :pint:

sibas
Honorary Member
Δημοσιεύσεις: 1873
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

προβλημα με split και join

Δημοσίευση από sibas » 20 Απρ 2017 14:07

ποιος μπορει να βοηθήσει σε αυτό γιατι δεν το καταλαβαίνω :hammer:

Κώδικας: Επιλογή όλων

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<p>copy li to another ul</p>

<ul id="u1">
<li data-id="2">data-id="2"</li>
</ul>

<ul id="u2"></ul>

<script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
const CHECK_ID = '5';
var us = '1,2,3,4,5';
//var us = '2,5';
function findulli&#40;us&#41;&#123;
var nu = us.split&#40;','&#41;,
newul = &#40;'ul#u2'&#41;;

   for&#40;var i = 0; i < nu.length; ++i&#41;&#123;
	   console.log&#40;'nu.length= '+nu.length+' - '+nu&#91;i&#93;&#41;;
		if&#40;nu&#91;i&#93; === CHECK_ID&#41;&#123;
			//console.log&#40;'chekid '+CHECK_ID+'-> nu&#91;i&#93;= '+nu&#91;i&#93;+ ' i= '+i&#41;;
			console.log&#40;'spliced first= '+nu&#91;i&#93;+' i='+i&#41;;
			nu.splice&#40;i, 1&#41;;
			
		&#125;else&#123;
			di = $&#40;'ul#u1'&#41;.find&#40;'li&#91;data-id='+nu&#91;i&#93;+'&#93;'&#41;;
			//di = $&#40;'ul#u1'&#41;.find&#40;'li&#91;data-id="6"&#93;'&#41;;
			numid = di.attr&#40;'data-id'&#41;;
			if&#40;typeof numid !== 'undefined'&#41;&#123;
				di.clone&#40;&#41;.prependTo&#40;newul&#41;;
				if&#40;nu&#91;i&#93; === numid&#41; &#123;
					nu.splice&#40;i, 1&#41;;
					console.log&#40;'spliced= '+nu&#91;i&#93;+' i='+i+ ' numid= '+numid&#41;;
				&#125;
			&#125;else&#123;
				 console.log&#40;'We not find DI'&#41;;
			&#125;
		&#125;
   &#125;
   console.log&#40;'new nu-> '+nu&#41;;
&#125;
findulli&#40;us&#41;;
</script>

</body>
</html>

για να δείτε το πρόβλημα comment/uncomment τα παρακάτω
var us = '1,2,3,4,5';
//var us = '2,5';
στο πρώτο λειτουργεί μια χαρά και αυτό είναι το ζητούμενο

logs
nu.length= 5 - 1
We not find DI
nu.length= 5 - 2
spliced= 3 i=1 numid= 2
nu.length= 4 - 4
We not find DI
nu.length= 4 - 5
spliced first= 5 i=3 // *
new nu-> 1,3,4 // το ζητούμενο είναι αυτό
στο δεύτερο
//var us = '1,2,3,4,5';
var us = '2,5';
logs
nu.length= 2 - 2
spliced= 5 i=0 numid= 2
new nu-> 5 // ΕΔΩ ΤΟ nu ΕΠΡΕΠΕ ΝΑ ΕΙΝΑΙ ΚΕΝΟ
δηλαδή το προβλημα είναι ότι το spliced first δεν εκτελέστηκε
i.e if(nu === CHECK_ID)

τι κάνω λάθος???

wrollykey
Δημοσιεύσεις: 1
Εγγραφή: 13 Νοέμ 2022 16:53

Re: προβλημα με split και join

Δημοσίευση από wrollykey » 13 Νοέμ 2022 17:02

I accidentally saw on the platform that day that the total duration of my League of Legends game was 6447.5 hours.
My first reaction was to take a breath.
I have been in contact with cgame for 9 years, which is 269 days without sleep, accounting for 3% of my current life.
If you are a King of Glory player, click on the personal homepage to find out your game rounds, multiply it by 20 (minutes), you can get similar data.
These quantified data are chilling, for no other reason, just because the first word that flashed into my mind was "a waste of time."
Then I started to blame myself, closed the interface hastily, opened the ppt
and conceived the non-existent plan in front of the blank screen,
completely forgetting that it was already 2:00 in the morning.
Said it is a concept, but it is actually just knocking on a bunch of words
that have no practical effect, as if as long as one page of A4 paper is filled, anxiety will be squeezed out.
"I have to do something, I have to do something, I have to do something."
My first reaction was to take a breath.
crypto market

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 5 επισκέπτες