Seçenek cast
cast
seçeneği, bir alanın değerini değiştirmek için alan düzeyinde çalışır. Bu özellik, alanın değerini dönüştürmek veya türünü değiştirmek için oldukça etkili bir yol sunar.
- Tür:
function
- Opsiyonel
- Varsayılan:
undefined
- Versiyon: 2.2.0
- İlgili:
cast_date
,info
,on_record
—Mevcut Seçenekler
için bakınız
cast
değeri, bağlam açısından zengin bilgileri alan bir fonksiyon olması beklenir. Fonksiyon, bir alan üzerinde tam kontrol sağlar.
Kullanım
cast
kullanıcı fonksiyonu, 2 argüman ile çağrılır: alan value
ve context
nesnesi. Kullanıcı fonksiyonu, değeri olduğu gibi döndürebilir veya null
ve undefined
de dahil olmak üzere herhangi bir başka değeri döndürebilir.
Önemli Not: The
test/option.cast.coffee
testi, nasıl kullanılacağı ve desteklenen işlevsellikler hakkında bilgi sağlar. İlk sütunu olduğu gibi döndürür, ikinci sütunu bir tam sayıya dönüştürür ve üçüncü sütunun değerinden yeni bir dize döndürür.
— Test Doğrulama Raporu
embed:packages/csv-parse/samples/option.cast.js
Bağlam
context
nesnesi şu özellikleri sergiler:
column
(number|string)
Eğercolumns
seçeneği tanımlanmışsa sütun adı, aksi takdirde alanın pozisyonu.empty_lines
(number)
Bu alana kadar karşılaşılan boş satırların içsel sayacı.header
(boolean)
Sağlanan değerin başlığın bir parçası olup olmadığını belirten bir boolean.index
(number)
Mevcut kayıttaki alan pozisyonu, 0'dan başlar.invalid_field_length
(number)relax_column_count
true olduğunda tutarsız uzunlukta kayıtlara sahip olan kayıt sayısı. Versiyon 3'e kadarskipped_lines
olarak adlandırılıyordu.lines
(number)
İşlenen satır sayısı, mevcut satır dahil.quoting
(boolean)
Alanın tırnaklar içinde olup olmadığını belirten bir boolean.records
(number)
Tamamen ayrıştırılmış kayıt sayısı. Versiyon 3'e kadarcount
olarak adlandırılıyordu.
bağlam örneği ilk alanı bir tarihe dönüştürmek ve ikinci alanı enjekte edilen bağlam ile değiştirmek için bağlamı kullanır:
embed:packages/csv-parse/samples/option.cast.context.js
cast
ve columns
fonksiyonlarını birlikte kullanma
cast
fonksiyonu, başlık olarak değerlendirilip değerlendirilmeksizin her bir alan için çağrılır. columns
fonksiyonu, ilk kayıt oluşturulduğunda (başlık olarak düşünülüyorsa) bir kez çağrılır. Bu nedenle cast
, columns
'dan önce çalıştırılır.
Not: cast
fonksiyonunda bir başlık alanını veri alanından ayırmak için, cast
fonksiyonunun ikinci argümanından context.header
özelliğini kullanın:
embed:packages/csv-parse/samples/option.cast.header.column.fn.js
Yukarıdaki örnek, cast
içinde doğrudan columns
dönüşümünü uygulamak için yeniden yazılabilir; columns: true
olarak ayarlanarak ve if(context.header) return value;
yerine if(context.header) return value.toUpperCase();
ile değiştirilerek:
embed:packages/csv-parse/samples/option.cast.header.columns.true.js