/**
* Let us create a function that receives a string "abcbdbd",
* and returns an array like:
["a", "a.b", "a.b.c", "a.b.c.b", "a.b.c.b.d", "a.b.c.b.d.b", ...]
*/

function splitString(str) {
  const arr = [];
  for (var i = 0; i < str.length; i++) {
    arr.push(str[i]);
    for (var z = 0; z < arr.length; z++) {
      const joinArr = `${arr[0]}.${arr[z]}`;
      console.log(joinArr);
    }
  }

  return [];
}

console.log(splitString("abcdebfkjj"));

कैसे जोड़ना है । हर तार के बाद? मैंने लूप के लिए कोशिश की है। तो क्या मुझे मानचित्र और .join का उपयोग करना चाहिए?

0
Sajib 7 जिंदा 2022, 14:45
स्ट्रिंग के पात्रों पर पुनरावृति। .slice() स्ट्रिंग को आवश्यक लंबाई से मेल खाने वाले टुकड़ों में विभाजित करें। .split() और .join(".")
 – 
Andreas
7 जिंदा 2022, 14:50
आप केवल एक ही वर्ण को arr में धकेलते हैं। joinArr की सामग्री को केवल लॉग किया जाता है और कभी भी संग्रहीत नहीं किया जाता है। splitString() हमेशा एक खाली सरणी देता है।
 – 
Andreas
7 जिंदा 2022, 14:51

3 जवाब

सबसे बढ़िया उत्तर

map का उपयोग करने वाला एक उदाहरण

const str = "abcbdef";

const array = str.split("");

const output = array.map((_, idx, arr) => arr.slice(0, idx + 1).join("."));

console.log(output);
2
ikhvjs 7 जिंदा 2022, 14:57

स्ट्रिंग (Array.from()) से एक सरणी बनाएं, इसे एक सरणी में कम करें, ताकि प्रत्येक तत्व सरणी में वर्तमान अंतिम तत्व (acc[acc.length-1]) हो। पहले तत्व के लिए बस इसे सरणी में जोड़ें।

function splitString(str) {
  return Array.from(str).reduce((acc,cv) => {
    if (acc[0]) acc.push(acc[acc.length-1]+"."+cv)
    else acc[0] = cv // if the array is empty, add just the first char
    return acc
  },[])
}

console.log(splitString("abcdebfkjj"));
0
Luca Kiebel 7 जिंदा 2022, 14:59

आप सभी वर्णों की एक सरणी बना सकते हैं और अंतिम लौटाया गया मान जोड़ सकते हैं।

function splitString(str) {
    return Array.from(
        str,
        (l => v => l += (l && '.') + v)('')
    );
}

console.log(splitString("abcdebfkjj"));
0
Nina Scholz 7 जिंदा 2022, 16:09