Freecodecamp: ES6: Membuat String menggunakan Template Literals - Test Fails - Tidak mendeteksi string template

Dibuat pada 28 Des 2017  ·  75Komentar  ·  Sumber: freeCodeCamp/freeCodeCamp



Nama Tantangan

https://beta.freecodecamp.org/en/challenges/es6/create-strings-using-template-literals

Deskripsi masalah


Tantangannya adalah gagal pada tes terakhir, 'String template telah digunakan'.

Informasi Browser

Nama Browser, Versi:
Sistem Operasi: FireFox 57.0 (64-bit) dan Chrome Versi 63.0.3239.84 (Build Resmi) (64-bit)
Seluler, Desktop, atau Tablet: Laptop Windows 10 Professional 64-bit

Kode Anda


`const resultDisplayArray = result.failure.map(x => `<li class="text-warning">${x}</li>`);`

Screenshot

image

Komentar yang paling membantu

dikonfirmasi:

const resultDisplayArray = arr.map((a) => {
  return `<li class="text-warning">${a}</li>`
});

bekerja
tapi

const resultDisplayArray = [
  `<li class="text-warning">${arr[0]}</li>`,
  `<li class="text-warning">${arr[1]}</li>`,
  `<li class="text-warning">${arr[2]}</li>`
];

tidak bekerja. Dan, tidak disebutkan peta dalam pelajaran - dan, peta bahkan tidak diperkenalkan dalam kurikulum sampai bagian Pemrograman Fungsional yang muncul setelah bagian ini.

Semua 75 komentar

Pembaruan: setelah beberapa penyelidikan oleh salah satu pekemah kami, tampaknya cabang pementasan memperbaiki masalah tetapi belum ditransfer ke beta.

Saya dapat mengonfirmasi bahwa ini berfungsi pada pementasan, tetapi saya pikir deskripsinya dapat menggunakan sedikit klarifikasi.

Punya masalah serupa. Setuju dengan sistimotik. Perubahan teks dalam kasus uji yang diusulkan sebagai berikut:

Saat ini: string Template digunakan
Diusulkan: string template digunakan dengan map ()

Saya telah melihat hal ini hari ini, tantangannya tidak menunjukkan bahwa menggunakan .map () diperlukan, dan saya dapat menyelesaikan / menyelesaikannya dengan dan tanpa menggunakan .map (). Oleh karena itu saya tidak percaya bahwa ini memerlukan perubahan?

Paul (@PolarisTLX) dan Kyle (@ jklemon17)

Saya memeriksa ini baru-baru ini menggunakan solusi @mstellaluna dan juga menyelesaikannya tanpa menggunakan peta seperti yang dilakukan @PolarisTLX . Menggunakan peta mungkin adalah cara paling ringkas untuk menyelesaikan tantangan ini, tetapi saya pikir kita harus menyerahkannya kepada pengguna bagaimana cara melakukannya. Saya tidak yakin deskripsi memerlukan perubahan apa pun karena pengguna diberi tahu apa yang harus dikembalikan oleh fungsi makeList.

Sepertinya map sekarang adalah satu-satunya metode penyampaian dalam versi baru . 2 metode berikut gagal 'String template digunakan':

const resultDisplayArray = [
  `<li class="text-warning">${arr[0]}</li>`,
  `<li class="text-warning">${arr[1]}</li>`,
  `<li class="text-warning">${arr[2]}</li>`
];
const resultDisplayArray = [];
  for (let i = 0; i < arr.length; i++) {
    resultDisplayArray.push(`<li class="text-warning">${arr[i]}</li>`)
  }

@yoizefisch , kamu benar. Keduanya adalah solusi yang valid, tetapi tidak lolos.

Sepertinya kasus uji untuk literal template tidak cukup fleksibel:

getUserInput => assert(getUserInput('index').match(/\\`<li class=\"text-warning\">\\$\\{\\w+\\}<\\/li>\\`/g)

Regex tidak mengharapkan tanda kurung sebelum kurung kurawal berikutnya, dan solusi Anda menyebabkan pengujian gagal. Seharusnya perbaikan yang cukup sederhana. Saya bukan yang terbaik dengan regex, tetapi ini akan memungkinkan solusi yang berbeda seperti yang di atas:

\`<li \s*class\s*=\s*(\"\s*text-warning\s*\"|\'\s*text-warning\s*\')\s*>\s*\$\s*\{(\s*\w+\s*|\s*\w+\s*\[\s*[\w]+\s*\]\s*)\}\s*<\s*\/li\s*>\`

Saya tidak yakin persis di mana beberapa karakter harus diloloskan ganda dengan dua garis miring seperti dalam pengujian saat ini. Adakah di sini yang tertarik untuk memperbarui tes ini dan mengirimkan PR?

Selain itu, berikut adalah tautan yang diperbarui ke tantangan yang dimaksud:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/create-strings-using-template-literals

Juga ingin melaporkan ini masih menjadi masalah, peta berfungsi untuk solusinya.

Mengingat saya memiliki masalah yang sama pada versi stabil ES6 di FCC yang baru saja diterapkan awal minggu ini, saya ragu mempertimbangkan kode saya .. Adakah yang bisa membantu saya?

Ini kode saya: https://repl.it/repls/DizzyNiftyLocatorprogram

Mendorong tidak bekerja dalam latihan ini (atau tidak atau saya dan sepertinya tidak
lainnya), gunakan metode .map untuk lulus ujian.

Mark Kleinhaus
[email protected] [email protected]
206-234-4887

Pada hari Minggu, 3 Jun 2018 pukul 06.10, aenkirch [email protected] menulis:

Mengingat saya memiliki masalah yang sama pada versi stabil ES6 di FCC
yang baru saja diterapkan awal minggu ini, saya ragu mempertimbangkan saya
kode .. Ada yang bisa membantu saya?

Ini kode saya: https://repl.it/repls/DizzyNiftyLocatorprogram

-
Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/freeCodeCamp/freeCodeCamp/issues/16358#issuecomment-394161176 ,
atau nonaktifkan utasnya
https://github.com/notifications/unsubscribe-auth/AQdgL5WB3BsARAzpDfgyWHG8VsYm29yaks5t4-A3gaJpZM4ROiPm
.

Mereka meneruskan result.failure sebagai parameter.

Jawaban yang Tepat Adalah

// ubah kode di bawah baris ini
const resultDisplayArray = arr.map (x => <li class="text-warning">${x}</li> );

dikonfirmasi:

const resultDisplayArray = arr.map((a) => {
  return `<li class="text-warning">${a}</li>`
});

bekerja
tapi

const resultDisplayArray = [
  `<li class="text-warning">${arr[0]}</li>`,
  `<li class="text-warning">${arr[1]}</li>`,
  `<li class="text-warning">${arr[2]}</li>`
];

tidak bekerja. Dan, tidak disebutkan peta dalam pelajaran - dan, peta bahkan tidak diperkenalkan dalam kurikulum sampai bagian Pemrograman Fungsional yang muncul setelah bagian ini.

@ P1xt Memiliki masalah yang sama. Syukurlah bukan hanya saya.

const result = {
  success: ["max-length", "no-amd", "prefer-arrow-functions"],
  failure: ["no-var", "var-on-top", "linebreak"],
  skipped: ["id-blacklist", "no-dup-keys"]
};
function makeList(arr) {
  "use strict";

  // change code below this line
  const resultDisplayArray =
 [`<li class="text-warning">${arr[0]}</li>`, 
  `<li class="text-warning">${arr[1]}</li>`, 
  `<li class="text-warning">${arr[2]}</li>`];
  // change code above this line

  return resultDisplayArray;
}
/**
 * makeList(result.failure) should return:
 * [ <li class="text-warning">no-var</li>,
 *   <li class="text-warning">var-on-top</li>, 
 *   <li class="text-warning">linebreak</li> ]
 **/
const resultDisplayArray = makeList(result.failure);****

Saya mempunyai masalah yang sama

@ richa031 Seperti ditunjukkan di atas, Anda perlu menggunakan Array.map, dengan pendekatan Anda tidak berhasil.

apakah ada yang salah saya tulis? dan mengapa kita menggunakan fungsi peta di sini?

Ini adalah masalah konyol, tetapi tanda kutip ganda juga diperlukan di antara string literal saat tanda kutip tunggal juga merupakan solusi yang dapat diterima.

Sebagai kelanjutan dari https://github.com/freeCodeCamp/freeCodeCamp/issues/16358#issuecomment -396369730,
Saya ingin menambahkan bahwa ini tidak berhasil:

const resultDisplayArray = [];
  for (let i = 0; i < arr.length; i++) {
    resultDisplayArray[i] = `<li class="text-warning">${arr[i]}</li>`
  }

@kanexte terima kasih

Hanya ingin menyela dan menyebutkan bahwa saya juga mengalami masalah yang sama. Senang mendengarnya bukan aku. Semoga segera diperbaiki.

Menghadapi masalah yang sama. Saya kira saya harus membiarkan tantangan ini secara resmi belum selesai dan melanjutkan. IM (H) O - untuk cakupan tantangan ini, mereferensikan elemen array dengan indeksnya adalah solusi paling elegan dan menggunakan map / loop mengacaukan kode.

Saya juga mengalami masalah ini. Saya mencoba menggunakan peta dan sekarang saya mendapatkan kesalahan yang mengatakan:

React tidak ditentukan

Saya pikir saya mendapatkan ini juga tetapi melempar peta ke sini hanya membuatnya menjadi sangat sulit.

bagaimana kamu memecahkan masalah @ richa031

P1xt adalah rigth array.map adalah kunci untuk tantangan ini tetapi Anda tidak boleh lupa bahwa ini membutuhkan fungsi sebagai parameter

@Tirjasdyn saya mengalami masalah yang sama, bagian fcc Es6 sangat rusak. Sangat sedikit instruksi. Tidak ada instruksi tentang cara menggunakan map (), filter (), reduce () di tantangan sebelumnya juga.

apakah ada solusi yang tepat untuk masalah ini?

@ Omerdogan3 Ini bukan cara yang benar, karena Anda melihat tantangan keluaran yang diinginkan
makeList (result.failure) harus mengembalikan:

  • [
  • no-var
  • ,
  • var-on-top
  • ,
  • linebreak
  • ]
    karena solusi Anda tidak mencetak koma atau ','.

Saya setuju dengan @scissorsneedfoodtoo bahwa regex dalam kasus uji terlalu membatasi.

Saya bukan ahli regex tapi inilah yang saya temukan / <li class="text-warning">\$\{[\w\[\]]+\}<\/li> / g (tanpa garis miring terbalik untuk string). Ini akan memungkinkan untuk ... solusi loop yang mengakses array dengan notasi braket arr [i] yang tampaknya tidak diizinkan dengan uji ekspresi reguler saat ini.

const resultDisplayArray = arr.map ((a) => {
mengembalikan <li class="text-warning">${a}</li>
}); ``

Masih mendapatkan Invalid regular expression flags

Saya baru saja mendapatkan Invalid regular expression flags

Saya juga masih menerima kesalahan untuk solusi yang benar.

masih mendapatkan> panji ekspresi reguler tidak valid

Halo semua. Terima kasih telah meluangkan waktu untuk memberi tahu kami tentang masalah yang sedang berlangsung ini. Hanya ingin memberi tahu Anda semua bahwa pengujian regex untuk tantangan ini telah diupdate baru-baru ini, dan pengujian tersebut akan segera diproduksi.

Masih mendapatkan tanda ekspresi reguler yang tidak valid dengan:

const resultDisplayArray = arr.map ((a) => {
mengembalikan <li class="text-warning">${a}</li>
});

@ mirkocoppola80 ya, saya tidak yakin seberapa sering merge / build mereka. Saya tidak berpikir mereka telah melakukannya sejak 30 Mei, jadi kami menunggu itu agar perubahan diterapkan.

Bendera ekspresi reguler tidak valid untuk hari ini, menunggu pembaruan ...

saya mencoba dengan peta, untuk loop, dll, tetapi saya tidak menemukan solusi. Anda bisa melihatnya, mungkin menemukan ide kunci. https://www.youtube.com/watch?v=XzExdQye1Ls

@jsparadacelis Saya mengikuti kode di video itu, itu tidak berfungsi

Hai, saya juga masih mendapatkan panji ekspresi reguler tidak valid dengan:

const resultDisplayArray = arr.map (item => <li class="text-warning">${item}</li> );

Itu masih belum berhasil. Bisakah kita mendapatkan lampu di sini?

Ya, masih belum dapat menemukan solusi yang berhasil untuk tantangan ini

Saya mendapatkan kesalahan tanda ekspresi reguler tidak valid .

const resultDisplayArray = arr.map ((msg) => {
mengembalikan <li class="text-warning">${msg}</li> ;
});

Saya juga mendapatkan kesalahan tanda ekspresi reguler tidak valid untuk di bawah ini.
screen shot 2018-07-11 at 9 37 41 pm

Saya mencobanya dengan map dan semuanya dan saya masih mendapatkan bendera ekspresi reguler tidak valid

Dikonfirmasi masih tidak berfungsi

Masih belum berhasil, agak membuat frustrasi

Saat ini baik metode MAP maupun pendekatan yang lebih sederhana namun panjang tidak berfungsi, error yang sama - "Tanda ekspresi reguler tidak valid" meskipun pengujian lain telah lulus

Hei, jika ada yang menemukan cara tolong beri tahu sayaeee, saya tidak bisa memajukan xD (saya tahu saya bisa melewati itu tapi oh OCD saya)

Masih tidak berhasil untuk saya.

Hei, aku hanya pria lain yang menulis bahwa itu masih tidak berhasil.

Saya telah melihat bahwa ini seharusnya diperbaiki dan belum diterapkan tetapi, ingin memposting jika perlu info lebih lanjut. Saya telah mengkonfirmasi keluaran yang benar dengan console.log () namun, solusi saya tidak lulus tes "String template telah digunakan".
kode saya:

const resultDisplayArray = arr.map(x => `<li class="text-warning">${x}</li>`);
console.log(resultDisplayArray);

keluaran konsol:

// running test
Invalid regular expression flags
// tests completed
<li class="text-warning">no-var</li>,<li class="text-warning">var-on-top</li>,<li class="text-warning">linebreak</li>

Masih tidak bekerja. const resultDisplayArray = arr.map(num => '<li class="text-warning">${num}</li>');
// menjalankan tes
Tanda ekspresi reguler tidak valid
// tes selesai

Metode peta masih tidak berfungsi. Dengan atau tanpa imbalan.

masih menunggu perbaikan

const resultDisplayArray = arr.map (val => {return <li class="text-warning">${val}</li> });

Mendapatkan hasil tanda ekspresi reguler tidak valid.

const resultDisplayArray = arr.map (x => <li class="text-warning">${x}</li> );

const resultDisplayArray = [ <li class="text-warning">${arr[0]}</li> , <li class="text-warning">${arr[1]}</li> , <li class="text-warning">${arr[2]}</li> ];

keduanya tidak berfungsi untuk saya, saya pikir itu adalah kode saya, tetapi sepertinya ada sesuatu yang rusak

Mencoba menyelesaikannya hari ini, tetapi tetap tidak berhasil.

Saya sudah mencobanya juga dengan tanda pelarian:

const resultDisplayArray = arr.map (x => <li class=\"text-warning\">${x}</li> );

tapi tetap saja "Tanda ekspresi reguler tidak valid"

Saya juga telah mencoba menyelesaikannya, tetapi terus mendapatkan "Bendera ekspresi reguler tidak valid" yang sama sebagai output. 2 dari tiga tes lulus tetapi saya terus mendapatkan pesan.

const resultDisplayArray = arr.map (val => <li class="text-warning">${val}</li> );

Saya juga menggunakan for loop sederhana dan mendapatkan hasil yang sama

Masih belum diperbaiki! 😢

ya saya telah menulisnya seperti 4 cara dan tidak berhasil. itu rusak. lewati saja dan lanjutkan

Masih tidak bekerja..

Permasalahan yang sama;

const resultDisplayArray = arr.map((a) => { return `<li class="text-warning">${a}</li>` });

mengembalikan kesalahan "tanda ekspresi reguler tidak valid"

Konfirmasikan masih tidak berfungsi.
Mencoba forEach, for loop, map..Tidak tahu apa yang terjadi dengan tantangan ini

Yup, masih belum berfungsi. Mendapatkan kesalahan yang sama seperti orang lain, "Tanda Ekspresi Reguler Tidak Valid".
Mencoba dengan map, forEach, dll.

Berhasil! Saya mencoba solusi yang sama dengan peta setiap minggu dan sekarang telah berlalu! Hore!

Bekerja untuk saya juga! :) Tidak bekerja kemarin.

Dikonfirmasi sekarang berfungsi dengan

const resultDisplayArray = arr.map((msg) => {
  return `<li class="text-warning">${msg}</li>`;
});

Terima kasih atas perbaikannya.

Aleluya !! berhasil

alleluia.finally bekerja

ini harus bekerja tanpa fungsi peta, hanya menggunakan literal template normal, karena ini akan mengajarkan bagaimana ruang disimpan tanpa menambahkan
tag atau & nbsp;

Di bawah ini Anda dapat menemukan kode yang berfungsi :):

hasil const = {
sukses: ["max-length", "no-amd", "prefer-arrow-functions"],
kegagalan: ["no-var", "var-on-top", "linebreak"],
dilewati: ["id-blacklist", "no-dup-keys"]
};
function makeList (arr) {
"gunakan ketat";

// ubah kode di bawah baris ini
const resultDisplayArray = [ <li class="text-warning">${arr[0]}</li> ,
<li class="text-warning">${arr[1]}</li> ,
<li class="text-warning">${arr[2]}</li> ];
// ubah kode di atas baris ini

return resultDisplayArray;
}
/ **

  • makeList (result.failure) harus mengembalikan:
  • [ <li class="text-warning">no-var</li> ,
  • <li class="text-warning">var-on-top</li> ,
  • <li class="text-warning">linebreak</li> ]
    ** /
    const resultDisplayArray = makeList (result.failure);
Apakah halaman ini membantu?
0 / 5 - 0 peringkat