Cara menggunakan OBJECT.VALUES pada JavaScript

Pada tutorial kali ini Konsep Koding akan berbabagi informasi mengenai bagaimana caranya untuk menemukan sebuah Element properi value pada sebuah array yang berbentuk object pada javascript.

Array sendiri adalah kumpulan data yang berisi banyak properti yang sama dan sedangkan object merupakan kumpulan data yang memiliki properti dan properti tersebut memiliki key dab value, nah untuk bentuk array object pada js kurang lebih seperti ini : [{}, {}, {}, {}]

Kadang kita harus menemukan sebuah properti dalam sebuah array object, entah itu data dari Backend atau data lainnya.

Berikut cara untuk menemukan properti value pada array object di javascript menggunakan high order function find.

Cara menggunakan OBJECT.VALUES pada JavaScript
Tutorial Cara Menemukan Properti Value Pada Array Object JS

Menemukan Properti Value Pada Array Object JS

Berikut kode untuk menemukan sebuah element pada array obeject di javascript:

const array1 = [
  {
    card: 10,
  },
  {
    card: 12,
  },
];

const found = array1.find((element) => element.card == 12);

console.log(found);
// expected output: 12

Sekian semoga artikel untuk menemukan sebuah array object di javascript dapat bermanfaat disini saya menggunakan Javascript ES6+ untuk solve problem tersebut, semoga dapat bermanfaat.

Baca Juga:

Saya mencoba membentuk string yang dipisahkan koma dari suatu objek,

const data = {"Ticket-1.pdf":"8e6e8255-a6e9-4626-9606-4cd255055f71.pdf","Ticket-2.pdf":"106c3613-d976-4331-ab0c-d581576e7ca1.pdf"};
const values = Object.values(data).map(x => x.substr(0, x.length - 4));
const commaJoinedValues = values.join(',');
console.log(commaJoinedValues);

Bagaimana melakukan ini dengan TypeScript?

mendapatkan file kesalahan:

severity: 'Error'
message: 'Property 'values' does not exist on type 'ObjectConstructor'.'
at: '216,27'
source: 'ts'

menggunakan Object.keys sebagai gantinya.

const data = {
  a: "first",
  b: "second",
};

const values = Object.keys(data).map(key => data[key]);

const commaJoinedValues = values.join(",");
console.log(commaJoinedValues);

Object.values() adalah bagian dari ES2017 , dan kesalahan kompilasi yang Anda peroleh adalah karena Anda perlu mengonfigurasi TS untuk menggunakan perpustakaan ES2017. Anda mungkin menggunakan pustaka ES6 atau ES5 dalam konfigurasi TS Anda saat ini.

Solusi: gunakan es2017 atau es2017.object dalam --lib opsi kompiler Anda.

Misalnya, menggunakan tsconfig.json:

"compilerOptions": {
    "lib": ["es2017", "dom"]
}

Perhatikan bahwa penargetan ES2017 dengan TypeScript tidak tidak memancarkan polyfill di browser untuk ES2017 , terserah Anda untuk melakukannya di proyek Anda sendiri jika Anda mau. Dan karena Object.values belum didukung dengan baik oleh semua browser Anda pasti menginginkan polyfill: core-js akan lakukan pekerjaan .

Anda dapat menggunakan Object.values dalam TypeScript dengan melakukan ini (<any>Object).values(data) jika karena alasan tertentu Anda tidak dapat memperbarui ke ES7 di tsconfig.

Dari pada

Object.values(myObject);

menggunakan

Object["values"](myObject);

Dalam contoh kasus Anda:

const values = Object["values"](data).map(x => x.substr(0, x.length - 4));

Ini akan menyembunyikan kesalahan kompiler ts.

Saya telah meningkatkan target di tsconfig.json saya untuk mengaktifkan fitur ini di TypeScript

{
    "compilerOptions": {
        "target": "es2017",
        ......
    }
}

Saya baru saja mencapai masalah ini dengan Angular 6 menggunakan CLI dan ruang kerja untuk membuat perpustakaan menggunakan ng g library foo.

Dalam kasus saya, masalahnya ada di tsconfig.lib.json di folder library yang tidak memiliki es2017 yang termasuk dalam bagian lib.

Siapa pun yang menemukan masalah ini dengan Angular 6 Anda hanya perlu memastikan bahwa Anda memperbarui tsconfig.lib.json serta aplikasi Anda tsconfig.json

Memiliki konfigurasi aturan tslint saya di sini selalu mengganti baris Object["values"](myObject) dengan Object.values(myObject).

Dua opsi jika Anda memiliki masalah yang sama:

(Object as any).values(myObject)

atau

/*tslint:disable:no-string-literal*/
`Object["values"](myObject)`