স্ট্রিং.স্প্লিট কোনও ক্রিয়াকলাপ নয় - ত্রুটির কারণ কী?


110

আমি কেন পাচ্ছি ...

আনকড টাইপ এরিয়ার: স্ট্রিং.স্প্লিট কোনও ফাংশন নয়

... আমি যখন দৌড়ে ...

var string = document.location;
var split = string.split('/');


2
document.locationএকটি বস্তু। চেষ্টা করুন:var string=document.location.href
তীমু

উত্তর:


212

এই পরিবর্তন...

var string = document.location;

এই ...

var string = document.location + '';

এটি হ'ল document.locationএকটি অবস্থান অবজেক্ট । ডিফল্টটি .toString()স্ট্রিং আকারে অবস্থানটি ফেরত দেয়, সুতরাং সংক্ষেপণ এটি ট্রিগার করে।


আপনি document.URLএকটি স্ট্রিং পেতে ব্যবহার করতে পারেন।


57
toString()হ্যাকি কনটেস্টেশনের পরিবর্তে কল করা কি পরিষ্কার হবে না ?
কাপা

2
@ বামেগাকাপা: হ্যাঁ, এটি অগ্রাধিকারের বিষয়। + ''স্ট্রিং বলপ্রয়োগ জন্য একটি প্রশংসনীয় সাধারণ কৌতুক, কিন্তু কিছু লোক পছন্দ toString()পদ্ধতি। +সংখ্যা রূপান্তরকরণের জন্য আনারি ব্যবহার করার চেয়ে আমি এটিকে আর হ্যাকি বিবেচনা করব না ।

3
ঠিক তেমনই কুৎসিত। আছে parseInt()এবং parseFloat()। এছাড়াও আছে Number()+হল hacky কোড বা কম অভিজ্ঞ ব্যবহার করা কারো জন্য অবশ্যই খাটো, কিন্তু কম পাঠযোগ্য।
কাপা

+ ''পদ্ধতি Chrome ব্রাউজারে আমার জন্য সবকিছু পরিবর্তন করে না কিন্তু toString()না।
মার্টিন স্নাইডার

@ এমএ-মেডিন: আপনি কি করেছেন my_string + "".split()? যদি তা হয় তবে আপনার প্যারেন্স প্রয়োজন যেহেতু +তার চেয়ে কম অগ্রাধিকার রয়েছে .। সুতরাং (my_string + "").split()

66

হতে পারে

string = document.location.href;
arrayOfStrings = string.toString().split('/');

ধরে নিচ্ছেন আপনি বর্তমান ইউআরএল চান


12

এটি চালান

// you'll see that it prints Object
console.log(typeof document.location);

আপনি চান document.location.toString()বাdocument.location.href


ধন্যবাদ. আমি বুঝতে পারি নি যে আমি আমার ভারটিকে স্ট্রিং থেকে অবজেক্টে রূপান্তর করেছি। আপনার সমাধান আমাকে আমার কোডটি চেক করার জন্য একটি ধারণা দিয়েছে।
sg552

7

document.location স্ট্রিং নয়

আপনি সম্ভবত document.location.hrefবা document.location.pathnameতার পরিবর্তে ব্যবহার করতে চাইছেন ।


হাঃ হাঃ হাঃ. 4 টি উত্তর (কমপক্ষে) একই সাথে। এসও-তে নতুন প্রশ্নগুলি আমার দিকে তাকাতে হবে না :)
অস্বীকার করেছেন সাগ্রেট

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.