aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/array/tolocalestring/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/array/tolocalestring/index.html')
-rw-r--r--files/uk/web/javascript/reference/global_objects/array/tolocalestring/index.html182
1 files changed, 182 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/array/tolocalestring/index.html b/files/uk/web/javascript/reference/global_objects/array/tolocalestring/index.html
new file mode 100644
index 0000000000..75448b5e72
--- /dev/null
+++ b/files/uk/web/javascript/reference/global_objects/array/tolocalestring/index.html
@@ -0,0 +1,182 @@
+---
+title: Array.prototype.toLocaleString()
+slug: Web/JavaScript/Reference/Global_Objects/Array/toLocaleString
+tags:
+ - Array
+ - JavaScript
+ - Масив
+ - метод
+translation_of: Web/JavaScript/Reference/Global_Objects/Array/toLocaleString
+---
+<div>{{JSRef}}</div>
+
+<p>Метод <code><strong>toLocaleString()</strong></code> повертає рядок, що відображає елементи масиву. Елементи перетворюються у рядки, використовуючи свої методи <code>toLocaleString</code>, і ці рядки розділяються символами, що відповідають локалі (наприклад, комою “,”).</p>
+
+<div>{{EmbedInteractiveExample("pages/js/array-tolocalestring.html")}}</div>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox"><var>arr</var>.toLocaleString([<var>locales[</var>, <var>options]]</var>);
+</pre>
+
+<h3 id="Параметри">Параметри</h3>
+
+<dl>
+ <dt><code>locales</code> {{optional_inline}}</dt>
+ <dd>Рядок з міткою мови BCP 47 або масив таких рядків. Щодо загального вигляду та інтерпретації аргументу <code>locales</code> дивіться  {{jsxref("Intl")}}.</dd>
+ <dt><code>options</code> {{optional_inline}}</dt>
+ <dd>Об'єкт з властивостями конфігурації, для числових значень дивіться {{jsxref("Number.prototype.toLocaleString()")}}, а для дат {{jsxref("Date.prototype.toLocaleString()")}}.</dd>
+</dl>
+
+<h3 id="Значення_що_повертається">Значення, що повертається</h3>
+
+<p>Текстовий рядок, що відображає елементи масиву.</p>
+
+<h2 id="Приклади">Приклади</h2>
+
+<h3 id="Використання_locales_та_options">Використання <code>locales</code> та <code>options</code></h3>
+
+<p>Елементи масиву перетворюються на рядки, використовуючи свої методи <code>toLocaleString</code>.</p>
+
+<ul>
+ <li><code>Object</code>: {{jsxref("Object.prototype.toLocaleString()")}}</li>
+ <li><code>Number</code>: {{jsxref("Number.prototype.toLocaleString()")}}</li>
+ <li><code>Date</code>: {{jsxref("Date.prototype.toLocaleString()")}}</li>
+</ul>
+
+<p>Завжди відображати знак валюти для рядків та чисел у масиві <code>prices</code>:</p>
+
+<pre class="brush: js">var prices = ['¥7', 500, 8123, 12];
+prices.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' });
+
+// "¥7,¥500,¥8,123,¥12"
+</pre>
+
+<p>Більше прикладів дивіться на сторінках {{jsxref("Intl")}}, {{jsxref("NumberFormat")}} та {{jsxref("DateTimeFormat")}}.</p>
+
+<h2 id="Поліфіл">Поліфіл</h2>
+
+<pre class="brush: js">// https://tc39.github.io/ecma402/#sup-array.prototype.tolocalestring
+if (!Array.prototype.toLocaleString) {
+ Object.defineProperty(Array.prototype, 'toLocaleString', {
+ value: function(locales, options) {
+ // 1. Нехай O дорівнює ? ToObject(this value).
+ if (this == null) {
+ throw new TypeError('"this" is null or not defined');
+ }
+
+ var a = Object(this);
+
+ // 2. Нехай len дорівнює ? ToLength(? Get(A, "length")).
+ var len = a.length &gt;&gt;&gt; 0;
+
+ // 3. Нехай separator дорівнює рядковому значенню
+ // роздільника елементів списку згідно поточної
+ // локалі середовища виконання (це значення
+ // визначається реалізацією).
+ // ЗАУВАГА: В даному випадку ми використовуємо кому
+ var separator = ',';
+
+ // 4. Якщо len дорівнює нулю, повернути порожінй рядок.
+ if (len === 0) {
+ return '';
+ }
+
+ // 5. Нехай firstElement дорівнює ? Get(A, "0").
+ var firstElement = a[0];
+ // 6. Якщо firstElement дорівнює undefined або null, тоді
+ // a. Нехай R дорівнює порожньому рядку.
+ // 7. Інакше,
+ // a. Нехай R дорівнює ?
+ // ToString(?
+ // Invoke(
+ // firstElement,
+ // "toLocaleString",
+ // « locales, options »
+ // )
+ // )
+ var r = firstElement == null ?
+ '' : firstElement.toLocaleString(locales, options);
+
+ // 8. Нехай k дорівнює 1.
+ var k = 1;
+
+ // 9. Повторювати, доки k &lt; len
+ while (k &lt; len) {
+ // а. Нехай S дорівнює рядковому значенню, утвореному
+ // об'єднанням R та separator.
+ var s = r + separator;
+
+ // б. Нехай nextElement дорівнює ? Get(A, ToString(k)).
+ var nextElement = a[k];
+
+ // в. Якщо nextElement дорівнює undefined або null, тоді
+ // i. Нехай R дорівнє порожньому рядку.
+ // г. Інакше,
+ // i. Нехай R дорівнює ?
+ // ToString(?
+ // Invoke(
+ // nextElement,
+ // "toLocaleString",
+ // « locales, options »
+ // )
+ // )
+ r = nextElement == null ?
+ '' : nextElement.toLocaleString(locales, options);
+
+ // ґ. Нехай R дорівнює рядковому значенню, утвореному
+ // об'єднанням S та R.
+ r = s + r;
+
+ // д. Збільшити k на 1.
+ k++;
+ }
+
+ // 10. Повернути R.
+ return r;
+ }
+ });
+}
+</pre>
+
+<p>Якщо вам потрібно підтримувати зовсім застарілі рушії JavaScript, які не підтримують <code><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty">Object.defineProperty</a></code>, краще взагалі не використовувати поліфіли методів <code>Array.prototype</code>, оскільки ви не зможете зробити їх не перелічуваними.</p>
+
+<h2 id="Специфікації">Специфікації</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Специфікація</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Коментар</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-array.prototype.tolocalestring', 'Array.prototype.toLocaleString')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td>Початкове визначення було надане у ECMAScript 3.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES Int Draft', '#sup-array.prototype.tolocalestring', 'Array.prototype.toLocaleString')}}</td>
+ <td>{{Spec2('ES Int Draft')}}</td>
+ <td>Це визначення замінює визначення, надане у ECMA-262.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
+
+<div>
+
+
+<p>{{Compat("javascript.builtins.Array.toLocaleString")}}</p>
+</div>
+
+<h2 id="Див._також">Див. також</h2>
+
+<ul>
+ <li>{{jsxref("Array.prototype.toString()")}}</li>
+ <li>{{jsxref("Intl")}}</li>
+ <li>{{jsxref("Object.prototype.toLocaleString()")}}</li>
+ <li>{{jsxref("Number.prototype.toLocaleString()")}}</li>
+ <li>{{jsxref("Date.prototype.toLocaleString()")}}</li>
+</ul>