क्या स्ट्रिंग 50 वर्णों से अधिक होने पर '...' जोड़ने के लिए टर्नरी ऑपरेटर का उपयोग करना संभव है?

मैंने इसे इस तरह करने की कोशिश की लेकिन यह काम नहीं करता है।

{post.title.substring(0, 50) + post.title.length > 50
                    ? '...'
                    : ''}

कोई उपाय?

0
Daryl Wong 16 फरवरी 2021, 13:42

2 जवाब

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

सशर्त ऑपरेटर¹ काफी लालची है। इसे + के बाद केवल आपकी अभिव्यक्ति के भाग पर लागू करने के लिए, आपको कोष्ठक (समूह ऑपरेटर) की आवश्यकता है:

{post.title.substring(0, 50) + (post.title.length > 50
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−^
                    ? '...'
                    : '')
// −−−−−−−−−−−−−−−−−−−−−^
}

लेकिन आप इसके लिए जावास्क्रिप्ट के बजाय सीएसएस का उपयोग करने पर विचार कर सकते हैं। देखें text-overflow: ellipsis। आपको शायद white-space: nowrap और overflow: hidden; की भी आवश्यकता होगी:

.limit {
    max-width: 20em;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}
<div>With limit:</div>
<div class="limit">Now is the time for all good men to come to the aid of their country</div>
<div>Without limit:</div>
<div>Now is the time for all good men to come to the aid of their country</div>

¹ ? : टर्नरी ऑपरेटर (तीन ऑपरेंड स्वीकार करने वाला एक ऑपरेटर) है, और फिलहाल यह जावास्क्रिप्ट का एकमात्र टर्नरी ऑपरेटर है, लेकिन भविष्य में अन्य भी हो सकते हैं। इसका नाम सशर्त ऑपरेटर है।

3
2 revs 16 फरवरी 2021, 13:55

शायद आप ऐसा कुछ कर सकते हैं:

var shortTitle = post.title.length > 50 ? post.titie.substring(0,50) + "..." : post.title;
3
Ran Turner 16 फरवरी 2021, 13:54