জাভাস্ক্রিপ্ট বিপরীত বর্ণমালা

so I've been messing around with the .replace() function lately and wanted to make it reverse whatever the user inputs. (Aka a -> z, A -> Z, b -> y, B -> Y, ...)

আমি ফাংশন স্ট্যাকিং ব্যবহার করছি, তাই আমি শুধু .replace() প্রতিলিপি() ... প্রতি অক্ষরের জন্য প্রতিস্থাপন() ... তবে অবশ্যই যখন এটি এন হিট হয় তখন থেকে কাজ করবে না, এটি সমস্ত অগ্রগতি এবং বিপরীতমুখী শুরু করবে। একটি ভুল অনুবাদ সঙ্গে শেষ। কোন ধারণা আমি কিভাবে এই চারপাশে কাজ করতে পারি, যেহেতু আমি জানি, JS এর ​​পাইথন মত একটি। বিপরীত() ফাংশন নেই?

যদি আপনি এটি প্রয়োজন, এখানে আমার কোড

//replacing letters
lettertext = ttext.replace("a", "z")
.replace("A", "Z")
.replace("b", "y")
.replace("B", "y")
.replace("c", "x")
.replace("C", "X")
.replace("d", "w")
.replace("D", "W")
.replace("e", "v")
.replace("E", "V")
.replace("f", "u")
.replace("F", "U")
.replace("g", "t")
.replace("G", "T")
.replace("h", "s")
.replace("H", "S")
.replace("i", "r")
.replace("I", "R")
.replace("j", "q")
.replace("J", "Q")
.replace("k", "p")
.replace("K", "P")
.replace("l", "o")
.replace("L", "O")
.replace("m", "n")
.replace("M", "N")
.replace("n", "m")
.replace("N", "M")
.replace("o", "l")
.replace("O", "L")
.replace("p", "k")
.replace("P", "K")
.replace("q", "j")
.replace("Q", "J")
.replace("r", "i")
.replace("R", "I")
.replace("s", "h")
.replace("S", "H")
.replace("t", "g")
.replace("T", "G")
.replace("u", "f")
.replace("U", "F")
.replace("v", "e")
.replace("V", "E")
.replace("w", "d")
.replace("W", "D")
.replace("x", "c")
.replace("X", "C")
.replace("y", "b")
.replace("Y", "B")
.replace("z", "a")
.replace("Z", "A")
.replace("ä", "ß")
.replace("Ä", "ẞ")
.replace("ö", "ü")
.replace("Ö", "Ü")
.replace("ü", "ö")
.replace("Ü", "Ö")
.replace("ß", "ä")
.replace("ẞ", "Ä")
1
আপনি এই মত কিছু করতে পারেন
যোগ লেখক George, উৎস
আপনি 2 স্ট্রিং ব্যবহার করতে পারেন, আপনি যেটি পরিবর্তন করতে চান এবং একটি বিদারণ অক্ষর যা আপনি পরিবর্তন করতে চান। তারপরে সঠিক চরিত্রের সূচীটি অনুসন্ধান করুন এবং একই স্ট্রিংয়ের সাথে নতুন স্ট্রিংটি আপনার স্ট্রিংয়ে প্রতিস্থাপন করুন।
যোগ লেখক Baptiste Gavalda, উৎস
"abc" .split ('')। বিপরীত() এইভাবে করবেন।
যোগ লেখক Shailesh Rathod, উৎস

6 উত্তর

একটি বস্তু তৈরি করুন যেখানে কী স্ট্রিংয়ের অক্ষর থাকবে এবং এর মানটি সেই অক্ষর হবে যা আপনি প্রতিস্থাপন করতে চান।

ইনপুট মান পাওয়ার পরে স্ট্রিংটি বিভক্ত করুন এবং একটি অ্যারে তৈরি করুন এবং মানচিত্র ব্যবহার করুন এবং অক্ষরের ক্ষেত্রে এটির কলব্যাক ফাংশনটি চেক করুন।

যদি এটি নিম্নতর ক্ষেত্রে হয় তবে সরাসরি মানটি পুনরুদ্ধার করুন, যদি উচ্চতর ক্ষেত্রে এটি কম ক্ষেত্রে রূপান্তরিত হয় তবে অভিধান অবজেক্ট থেকে মান পেতে এবং তারপরে এটি ফেরত দেওয়ার আগে এটিকে বড় হাতের অক্ষরে রূপান্তর করুন।

চূড়ান্ত স্ট্রিং তৈরি করতে যোগদান করুন ব্যবহার করুন

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

let rvObj = {
  a: 'z',
  b: 'y'
}

function reverse() {
  let k = document.getElementById('text').value.trim().split('').map((item) => {
    let getCase = (item === item.toLowerCase()) ? true : false
    if (getCase) {
      return rvObj[item];
    } else {
      return rvObj[item.toLowerCase()].toUpperCase()
    }
  }).join('')
  console.log(k)
}
<input type="text" id='text'>
<button type='button' onclick='reverse()'>Reverse</button>
</div> </div>
1
যোগ

আপনি শুধুমাত্র একবার প্রতি চিঠি সুইচ আছে। আপনি এই প্যাটার্ন ব্যবহার করতে পারেন:

a='abcxyz'.replace(/./g,function(letter){
switch (letter) {
        case 'a':
            return 'z'
    default:
        return letter
}
})

আমরা কি করছেন, এটি একটি থেকে z প্রতিস্থাপন করবে। কিন্তু এটি আবার একটি প্রতিস্থাপন করবে না। প্রতিটি চিঠি শুধুমাত্র একবার প্রতিস্থাপিত হয়।

আমি প্রতিস্থাপনের জন্য ব্যবহৃত ফাংশন, স্ট্রিং প্রতিটি অক্ষরে মৃত্যুদন্ড কার্যকর করা হয়।

0
যোগ
আপনি সঠিক, যে কেন আমি প্রয়োজন ছাড়া অন্য উত্তর পোস্ট। এই উত্তরে, আমি প্রতিস্থাপিত হওয়ার পরে একই চিঠিটি দুবার প্রতিস্থাপনের নির্দিষ্ট বিষয়টির উত্তর দিই।
যোগ লেখক Aminadav, উৎস
আপনি অনেক সুইচ ক্ষেত্রে করতে হবে বিবেচনা বিবেচনা করে একটি মহান সমাধান মত মনে হচ্ছে না? প্রতিটি চিঠি জন্য অন্তত বলতে?
যোগ লেখক JO3-W3B-D3V, উৎস

সমস্ত প্রতিস্থাপিত স্ট্যাটাস ব্যবহার করে ইন্সটল করা, আপনি স্বয়ংক্রিয়ভাবে মিলযুক্ত জোড়াটি খুঁজে পেতে গৃহস্থালি কোডটি ব্যবহার করতে পারেন:

a='abcxyzABC'.replace(/./g,function(letter){
if (letter>='a' && letter<='z') {
    return String.fromCharCode( 'z'.charCodeAt(0) - letter.charCodeAt(0) + 'a'.charCodeAt(0)  )
}
if (letter>='A' && letter<='Z') {
    return String.fromCharCode( 'Z'.charCodeAt(0) - letter.charCodeAt(0) + 'A'.charCodeAt(0)  )
}
})

//ouptut: 'zyxcbaZYX"
0
যোগ

আপনি প্রতিস্থাপন ফাংশন মধ্যে regex ব্যবহার করতে হবে।

চেষ্টা করুন:

ttext.replace(/a/g, "z").replace(/A/g, "Z").replace(/b/g, "y")...
0
যোগ

আপনি জোড়াগুলির জন্য একটি হ্যাশ টেবিল নিতে এবং নতুন অক্ষরটি মানচিত্র বা মূল অক্ষরটি হ্যাশ টেবিলটিতে উপলব্ধ নাও করতে পারেন।

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

function replace(string) {
    var code = { "a": "z", "A": "Z", "b": "y", "B": "y", "c": "x", "C": "X", "d": "w", "D": "W", "e": "v", "E": "V", "f": "u", "F": "U", "g": "t", "G": "T", "h": "s", "H": "S", "i": "r", "I": "R", "j": "q", "J": "Q", "k": "p", "K": "P", "l": "o", "L": "O", "m": "n", "M": "N", "n": "m", "N": "M", "o": "l", "O": "L", "p": "k", "P": "K", "q": "j", "Q": "J", "r": "i", "R": "I", "s": "h", "S": "H", "t": "g", "T": "G", "u": "f", "U": "F", "v": "e", "V": "E", "w": "d", "W": "D", "x": "c", "X": "C", "y": "b", "Y": "B", "z": "a", "Z": "A", "ä": "ß", "Ä": "ẞ", "ö": "ü", "Ö": "Ü", "ü": "ö", "Ü": "Ö", "ß": "ä", "ẞ": "Ä" };
    return Array.from(string, c => code[c] || c).join('');
}

console.log(replace('Übermut2019'));//'Öyvinfg2019'
console.log(replace('Öyvinfg2019'));//'Übermut2019'
</div> </div>
0
যোগ

ব্যাখ্যা

এই সমাধানটির মধ্যে, আমি মনে করেছি যে বিভক্ত ব্যবহার করে ব্যবহার করার পরিবর্তে কিছু স্ট্রিংকে অ্যারেতে রূপান্তর করতে ES6 ব্যবহার করা বিজ্ঞতার ধারণা হবে সোরোগেট জোড়াগুলি । সুতরাং একবার স্ট্রিংটি অ্যারে রূপান্তরিত হয়ে গেলে, এটি কেবল বিপরীত দিকে যেতে পারে এবং তারপর যোগদান করুন ফাংশনটিকে স্ট্রিংয়ে রূপান্তর করতে ব্যবহার করুন।

অন্যান্য কিছু আছে যা আপনি করতে পারেন যেমন অ্যারে বাছাই করার জন্য এটি সাজানো বা যাই হোক না কেন, তবে আপনি ধারণাটি পেতে পারেন, আমি ভেবেছিলাম আপনি উভয় বাস্তবায়নের প্রশংসা করতে পারেন, তাই এখানে আপনি যান! :)

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

// Non sorted alphabet
const alphabet = "acbedfghijklmnopqrstuvwxyz";

// Simple reverse
const reverseAlphabet = alphabet => [...alphabet].reverse().join("");

// Simple reverse & sort 
const reverseSortAlphabet = alphabet => [...alphabet].sort().reverse().join("");

// Just the variable alphabet in reverse 
console.log(reverseAlphabet(alphabet)); 

// A sorted copy of the variable alphabet in reverse 
// Aka z, ..., a
console.log(reverseSortAlphabet(alphabet)); 
</div> </div>
0
যোগ