Underscore: دالة الصفيف: كرر عدد مرات V

تم إنشاؤها على ٢١ نوفمبر ٢٠١٢  ·  4تعليقات  ·  مصدر: jashkenas/underscore

اقتراح ضمني:

_.repeat("0",10)
// => ["0","0",... 10 times]

أو بدلاً من ذلك ، قم بتعديل وظيفة _.range بحيث:

_.range(0,0,10), instead of outputting [] outputs the above.

ها هي حالة الاستخدام:

var values = ["A","B","C"];
_.object(values)
// => {"A":undefined,"B":undefined,"C":undefined} // wonderful, as expected

ولكن ، ماذا لو أردت تهيئة كل قيمة في أزواج المفتاح / القيمة بنفس القيمة؟
قد يكون هذا خيارًا آخر ولكنه لا يعمل:

_.object(values,"0") // provide scalar instead of array
// => {"A":undefined,"B":undefined,"C":undefined} // same as before

سيعمل هذا إذا كان التكرار موجودًا:

_.object(values,_.repeat("0",values.length))
// => {"A":"0","B":"0","C":"0"} 
change

التعليق الأكثر فائدة

بدلاً من طريقة أخرى ، يمكننا فقط تعديل _.times لإرجاع نتيجة كل مكالمة callback ، كما يفعل Lo-Dash :

var zeros = _.times(10, function() { return 0; });
// => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

ال 4 كومينتر

+1 لوظيفة تكرار مصفوفة. لن أقوم بتعديل _.range لذلك ، لأنه مخصص لنطاقات الأرقام.

بدلاً من طريقة أخرى ، يمكننا فقط تعديل _.times لإرجاع نتيجة كل مكالمة callback ، كما يفعل Lo-Dash :

var zeros = _.times(10, function() { return 0; });
// => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

+ 1jdalton.

يبدو ذلك جيدًا بالنسبة لي - تفضل بذلك.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات