دالات المصفوفة ل Bicep

توضح هذه المقالة وظائف Bicep للعمل مع المصفوفات. يمكن العثور على وظائف lambda للعمل مع الصفائف هنا.

صفيف

array(convertToArray)

تحويل القيمة إلى مصفوفة.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
convertToArray ‏‏نعم‬ int، سلسلة، صفيف، أو كائن القيمة التي يتم تحويلها إلى صفيف.

قيمة الإرجاع

صفيف.

مثال

يوضح المثال التالي طريقة استخدام دالة الصفيف مع أنواع مختلفة.

param intToConvert int = 1
param stringToConvert string = 'efgh'
param objectToConvert object = {
  a: 'b'
  c: 'd'
}

output intOutput array = array(intToConvert)
output stringOutput array = array(stringToConvert)
output objectOutput array = array(objectToConvert)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
إخراج العدد الصحيح صفيف [1]
إخراج السلسلة صفيف ["efgh"]
objectOutput صفيف [{"a": "b", "c": "d"}]

concat

concat(arg1, arg2, arg3, ...)

يجمع بين مصفوفات متعددة ويعيد المصفوفة المتراصة. لمزيد من المعلومات حول دمج سلاسل متعددة، راجع concat.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ صفيف الصفيف الأول للسلسة.
مزيد من الوسائط لا صفيف مصفوفات أكثر بترتيب متسلسل للسلسة.

تأخذ هذه الدالة أي عدد من المصفوفات وتجمع بينها.

قيمة الإرجاع

مصفوفة من القيم المنسجمة.

مثال

يوضح المثال التالي كيفية دمج صفيفين.

param firstArray array = [
  '1-1'
  '1-2'
  '1-3'
]
param secondArray array = [
  '2-1'
  '2-2'
  '2-3'
]

output return array = concat(firstArray, secondArray)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
الرجوع صفيف ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"]

تحتوي على

contains(container, itemToFind)

للتحقق مما إذا كانت المصفوفة تحتوي على قيمة، أو أن العنصر يحتوي على مفتاح، أو سلسلة تحتوي على سلسلة فرعية. تكون مقارنة السلسلة حساسة لحالة الأحرف. ومع ذلك، عند اختبار ما إذا كان عنصر يحتوي على مفتاح، تكون المقارنة غير حساسة لحالة الأحرف.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
حاوية ‏‏نعم‬ صفيف أو عنصر أو سلسلة القيمة التي تحتوي على العنصر للبحث عنه.
البحث عن عنصر ‏‏نعم‬ سلسلة أو كثافة العمليات القيمة التي يتعين العثور عليها.

قيمة الإرجاع

صحيح إذا تم العثور على العنصر ؛ وإلا، خطأ .

مثال

يوضح المثال التالي كيفية استخدام محتويات مع أنواع مختلفة:

param stringToTest string = 'OneTwoThree'
param objectToTest object = {
  one: 'a'
  two: 'b'
  three: 'c'
}
param arrayToTest array = [
  'one'
  'two'
  'three'
]

output stringTrue bool = contains(stringToTest, 'e')
output stringFalse bool = contains(stringToTest, 'z')
output objectTrue bool = contains(objectToTest, 'one')
output objectFalse bool = contains(objectToTest, 'a')
output arrayTrue bool = contains(arrayToTest, 'three')
output arrayFalse bool = contains(arrayToTest, 'four')

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
stringTrue مجموعة صواب
stringFalse مجموعة خطأ
objectTrue مجموعة صواب
عنصر خطأ مجموعة خطأ
صفيف صحيح مجموعة صواب
صفيف خطأ مجموعة خطأ

فارغ

empty(itemToTest)

تحديد ما إذا كانت أي مصفوفة أو كائن أو سلسلة فارغة.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
itemToTest ‏‏نعم‬ صفيف أو عنصر أو سلسلة القيمة المستخدمة للتحقق مما إذا كانت فارغة.

قيمة الإرجاع

تظهر صحيح إذا كانت القيمة فارغة؛ بخلاف ذلك، تكون خطأ.

مثال

يتحقق المثال التالي ما إذا كان صفيف وعنصر وسلسلة فارغة.

param testArray array = []
param testObject object = {}
param testString string = ''

output arrayEmpty bool = empty(testArray)
output objectEmpty bool = empty(testObject)
output stringEmpty bool = empty(testString)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
arrayEmpty مجموعة صواب
عنصر فارغ مجموعة صواب
stringEmpty مجموعة صواب

أمثلة التشغيل السريع

يتم استخراج المثال التالي من قالب التشغيل السريع، الشبكة الظاهرية مع إعدادات سجلات التشخيص:

@description('Array containing DNS Servers')
param dnsServers array = []

...

resource vnet 'Microsoft.Network/virtualNetworks@2021-02-01' = {
  name: vnetName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: vnetAddressSpace
    }
    dhcpOptions: empty(dnsServers) ? null : {
      dnsServers: dnsServers
    }
    ...
  }
}

في التعبير الشرطي، يتم استخدام الدالة الفارغة للتحقق مما إذا كان صفيف dnsServers صفيفا فارغا.

أولاً

first(arg1)

إرجاع العنصر الأول من المصفوفة أو الحرف الأول من السلسلة.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ صفيف أو سلسلة قيمة استرداد العنصر الأول أو الحرف الأول.

قيمة الإرجاع

نوع (سلسلة أو عدد صحيح أو صفيف أو عنصر) العنصر الأول في صفيف أو الحرف الأول من سلسلة.

مثال

يوضح المثال التالي طريقة استخدام الدالة الأولى مع صفيف وسلسلة.

param arrayToTest array = [
  'one'
  'two'
  'three'
]

output arrayOutput string = first(arrayToTest)
output stringOutput string = first('One Two Three')

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
arrayOutput السلسلة‬ واحد
إخراج السلسلة السلسلة‬ O

flatten

flatten(arrayToFlatten)

يأخذ صفيفا من الصفائف، ويعيد صفيفا من عناصر الصفيف الفرعي، بالترتيب الأصلي. يتم تسطيح الصفوف الفرعية مرة واحدة فقط، وليس بشكل متكرر.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arrayToFlattern ‏‏نعم‬ صفيف صفيف الصفوف الفرعية المراد تسطيحها.

قيمة الإرجاع

صفيف

مثال

يوضح المثال التالي كيفية استخدام الدالة flatten.

param arrayToTest array = [
  ['one', 'two']
  ['three']
  ['four', 'five']
]
output arrayOutput array = flatten(arrayToTest)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
arrayOutput صفيف ['واحد'، 'اثنان'، 'ثلاثة'، 'أربعة'، 'خمسة']

indexOf

indexOf(arrayToSearch, itemToFind)

إرجاع عدد صحيح لفهرس التواجد الأول لعنصر في صفيف. المقارنة هي تحسس حالة الأحرف للسلاسل.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arrayToSearch ‏‏نعم‬ صفيف الصفيف المراد استخدامه للعثور على فهرس العنصر المراد البحث عنه.
البحث عن عنصر ‏‏نعم‬ int، سلسلة، صفيف، أو كائن العنصر المطلوب العثور عليه في الصفيف.

قيمة الإرجاع

عدد صحيح يمثل الفهرس الأول للعنصر في الصفيف. الفهرس قائم على صفر. إذا لم يتم العثور على العنصر، يتم إرجاع -1.

الأمثلة

يوضح المثال التالي كيفية استخدام الدالات indexOf وLastIndexOf:

var names = [
  'one'
  'two'
  'three'
]

var numbers = [
  4
  5
  6
]

var collection = [
  names
  numbers
]

var duplicates = [
  1
  2
  3
  1
]

output index1 int = lastIndexOf(names, 'two')
output index2 int = indexOf(names, 'one')
output notFoundIndex1 int = lastIndexOf(names, 'Three')

output index3 int = lastIndexOf(numbers, 4)
output index4 int = indexOf(numbers, 6)
output notFoundIndex2 int = lastIndexOf(numbers, '5')

output index5 int = indexOf(collection, numbers)

output index6 int = indexOf(duplicates, 1)
output index7 int = lastIndexOf(duplicates, 1)

المخرجات من المثال السابق هي:

Name نوع القيمة‬
index1 العدد الصحيح 1
index2 العدد الصحيح 0
index3 العدد الصحيح 0
index4 العدد الصحيح 2
index5 العدد الصحيح 1
index6 العدد الصحيح 0
index7 العدد الصحيح 3
notFoundIndex1 العدد الصحيح -1
notFoundIndex2 العدد الصحيح -1

intersection

intersection(arg1, arg2, arg3, ...)

رجوع إلى مصفوفة واحدة أو كائناً مع عناصر مشتركة من المعلمات.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ صفيف أو عنصر القيمة الأولى المستخدمة في العثور على العناصر الشائعة.
arg2 ‏‏نعم‬ صفيف أو عنصر القيمة الثانية المستخدمة في البحث عن العناصر الشائعة.
مزيد من الوسائط لا صفيف أو عنصر المزيد من القيم المستخدمة في العثور على العناصر الشائعة.

قيمة الإرجاع

مصفوفة أو كائن مع العناصر الشائعة. يتم تحديد ترتيب العناصر بواسطة معلمة المصفوفة الأولي.

مثال

يوضح المثال التالي كيفية استخدام التقاطع مع المصفوفات والكائنات:

param firstObject object = {
  one: 'a'
  two: 'b'
  three: 'c'
}

param secondObject object = {
  one: 'a'
  two: 'z'
  three: 'c'
}

param firstArray array = [
  'one'
  'two'
  'three'
]

param secondArray array = [
  'two'
  'three'
]

output objectOutput object = intersection(firstObject, secondObject)
output arrayOutput array = intersection(firstArray, secondArray)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
objectOutput ‏‏الكائن {"one": "a", "three": "c"}
arrayOutput صفيف ["اثنين، ثلاثة"]

تحدد معلمة المصفوفة الأولي ترتيب العناصر المتقاطعة. يوضح المثال التالي كيفية إستناد ترتيب العناصر المرجعة إلى أي مصفوفة هو الأول.

var array1 = [
  1
  2
  3
  4
]

var array2 = [
  3
  2
  1
]

var array3 = [
  4
  1
  3
  2
]

output commonUp array = intersection(array1, array2, array3)
output commonDown array = intersection(array2, array3, array1)

المخرجات من المثال السابق هي:

Name نوع القيمة‬
commonUp صفيف [1، 2، 3]
commonDown صفيف [3, 2, 1]

last

last(arg1)

قم بإرجاع العنصر الأخير من الصفيف أو الحرف الأخير من السلسلة.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ صفيف أو سلسلة قيمة استرداد العنصر الأخير أو الحرف الأخير.

قيمة الإرجاع

نوع (سلسلة أو عدد صحيح أو صفيف أو عنصر) العنصر الأخير في صفيف أو الحرف الأخير من سلسلة.

مثال

يوضح المثال التالي طريقة استخدام الدالة الأخيرة مع صفيف وسلسلة.

param arrayToTest array = [
  'one'
  'two'
  'three'
]

output arrayOutput string = last(arrayToTest)
output stringOutput string = last('One Two three')

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
arrayOutput السلسلة‬ ثلاثة
إخراج السلسلة السلسلة‬ E

lastIndexOf

lastIndexOf(arrayToSearch, itemToFind)

تُرجع عدداً صحيحاً لفهرس آخر تواجد لعنصر في صفيف. المقارنة هي تحسس حالة الأحرف للسلاسل.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arrayToSearch ‏‏نعم‬ صفيف الصفيف المراد استخدامه للعثور على فهرس العنصر المراد البحث عنه.
البحث عن عنصر ‏‏نعم‬ int، سلسلة، صفيف، أو كائن العنصر المطلوب العثور عليه في الصفيف.

قيمة الإرجاع

عدد صحيح يمثل الفهرس الأخير للعنصر في الصفيف. الفهرس قائم على صفر. إذا لم يتم العثور على العنصر، يتم إرجاع -1.

الأمثلة

يوضح المثال التالي كيفية استخدام الدالات indexOf وLastIndexOf:

var names = [
  'one'
  'two'
  'three'
]

var numbers = [
  4
  5
  6
]

var collection = [
  names
  numbers
]

var duplicates = [
  1
  2
  3
  1
]

output index1 int = lastIndexOf(names, 'two')
output index2 int = indexOf(names, 'one')
output notFoundIndex1 int = lastIndexOf(names, 'Three')

output index3 int = lastIndexOf(numbers, 4)
output index4 int = indexOf(numbers, 6)
output notFoundIndex2 int = lastIndexOf(numbers, '5')

output index5 int = indexOf(collection, numbers)

output index6 int = indexOf(duplicates, 1)
output index7 int = lastIndexOf(duplicates, 1)

المخرجات من المثال السابق هي:

Name نوع القيمة‬
index1 العدد الصحيح 1
index2 العدد الصحيح 0
index3 العدد الصحيح 0
index4 العدد الصحيح 2
index5 العدد الصحيح 1
index6 العدد الصحيح 0
index7 العدد الصحيح 3
notFoundIndex1 العدد الصحيح -1
notFoundIndex2 العدد الصحيح -1

طول

length(arg1)

تُرجع هذه الدالة عدد العناصر في مصفوفة، أو الأحرف في سلسلة، أو خصائص مستوى الجذر في كائن.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ صفيف أو سلسلة أو عنصر الصفيف الذي سيتم استخدامه للحصول على عدد العناصر أو السلسلة التي سيتم استخدامها للحصول على عدد الأحرف أو العنصر الذي سيتم استخدامه للحصول على عدد خصائص مستوى الجذر.

قيمة الإرجاع

عدد صحيح

مثال

يوضح المثال التالي كيفية استخدام الطول مع مصفوفة وسلسلة:

param arrayToTest array = [
  'one'
  'two'
  'three'
]
param stringToTest string = 'One Two Three'
param objectToTest object = {
  propA: 'one'
  propB: 'two'
  propC: 'three'
  propD: {
    'propD-1': 'sub'
    'propD-2': 'sub'
  }
}

output arrayLength int = length(arrayToTest)
output stringLength int = length(stringToTest)
output objectLength int = length(objectToTest)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
arrayLength Int 3
stringLength Int 13
objectLength Int 4

أمثلة التشغيل السريع

يتم استخراج المثال التالي من قالب التشغيل السريع، نشر إدارة واجهة برمجة التطبيقات في VNet الخارجية باستخدام IP العام :

@description('Numbers for availability zones, for example, 1,2,3.')
param availabilityZones array = [
  '1'
  '2'
]

resource exampleApim 'Microsoft.ApiManagement/service@2021-08-01' = {
  name: apiManagementName
  location: location
  sku: {
    name: sku
    capacity: skuCount
  }
  zones: ((length(availabilityZones) == 0) ? null : availabilityZones)
  ...
}

في التعبير الشرطي، تتحقق الدالة length من طول صفيف availabilityZones .

يمكن العثور على المزيد من الأمثلة في ملفات Bicep هذه:

max

max(arg1)

إرجاع القيمة القصوى من صفيف الأعداد الصحيحة أو قائمة مفصولة بفاصلة من الأعداد الصحيحة.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ صفيف الأعداد الصحيحة أو قائمة الأعداد الصحيحة المفصولة بفاصلة المجموعة للحصول على القيمة القصوى.

قيمة الإرجاع

يمثل العدد الصحيح القيمة القصوى.

مثال

يوضح المثال التالي كيفية استخدام الحد الأقصى مع الصفيف وقائمة الأعداد الصحيحة:

param arrayToTest array = [
  0
  3
  2
  5
  4
]

output arrayOutput int = max(arrayToTest)
output intOutput int = max(0,3,2,5,4)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
arrayOutput Int 5
إخراج العدد الصحيح Int 5

دقيقة

min(arg1)

قم بإرجاع القيمة الدنيا من صفيف من الأعداد الصحيحة أو قائمة مفصولة بفاصلة من الأعداد الصحيحة.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ صفيف الأعداد الصحيحة أو قائمة الأعداد الصحيحة المفصولة بفاصلة المجموعة للحصول على أدنى قيمة.

قيمة الإرجاع

يمثل العدد الصحيح القيمة الدنيا.

مثال

يوضح المثال التالي كيفية استخدام الحد الأدنى مع الصفيف وقائمة الأعداد الصحيحة:

param arrayToTest array = [
  0
  3
  2
  5
  4
]

output arrayOutput int = min(arrayToTest)
output intOutput int = min(0,3,2,5,4)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
arrayOutput Int 0
إخراج العدد الصحيح Int 0

النطاق

range(startIndex, count)

إنشاء مصفوفة من الأعداد الصحيحة من عدد صحيح كبداية وتحتوي على عدد العناصر.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
بداية الفهرس ‏‏نعم‬ العدد الصحيح أول عدد صحيح في الصفيف. يجب ألا يزيد إجمالي بداية الفهرس وعدد الكمية عن 2147483647.
عدد ‏‏نعم‬ العدد الصحيح عدد الأعداد الصحيحة في الصفيف. يجب أن يكون عددًا صحيحًا غير سالب يصل إلى 10000.

قيمة الإرجاع

صفيف من الأعداد الصحيحة.

مثال

يوضح المثال التالي كيفية استخدام دالة range:

param startingInt int = 5
param numberOfElements int = 3

output rangeOutput array = range(startingInt, numberOfElements)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
إخراج النطاق صفيف [5, 6, 7]

أمثلة التشغيل السريع

يتم استخراج المثال التالي من قالب التشغيل السريع، جهازان ظاهريان في VNET - موازن التحميل الداخلي وقواعد LB :

...
var numberOfInstances = 2

resource networkInterface 'Microsoft.Network/networkInterfaces@2021-05-01' = [for i in range(0, numberOfInstances): {
  name: '${networkInterfaceName}${i}'
  location: location
  properties: {
    ...
  }
}]

resource vm 'Microsoft.Compute/virtualMachines@2021-11-01' = [for i in range(0, numberOfInstances): {
  name: '${vmNamePrefix}${i}'
  location: location
  properties: {
    ...
  }
}]

ينشئ ملف Bicep موردين networkInterface واثنين من موارد virtualMachine.

يمكن العثور على المزيد من الأمثلة في ملفات Bicep هذه:

skip

skip(originalValue, numberToSkip)

إرجاع مصفوفة مع كافة العناصر بعد الرقم المحدد في المصفوفة أو إرجاع سلسلة مع كافة الأحرف بعد الرقم المحدد في السلسلة.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
القيمة الأصلية ‏‏نعم‬ صفيف أو سلسلة الصفيف أو السلسلة المطلوب استخدامها للتخطي.
رقم التخطي ‏‏نعم‬ العدد الصحيح عدد العناصر أو الأحرف التي ينبغي تخطيها. إذا كانت هذه القيمة 0 أو أقل، يتم إرجاع جميع العناصر أو الأحرف في القيمة. إذا كان أكبر من طول الصفيف أو السلسلة، يتم إرجاع صفيف أو سلسلة فارغة.

قيمة الإرجاع

صفيف أو سلسلة.

مثال

يتخطى المثال التالي عدد العناصر المحدد في المصفوفة وعدد الأحرف المحدد في سلسلة.

param testArray array = [
  'one'
  'two'
  'three'
]
param elementsToSkip int = 2
param testString string = 'one two three'
param charactersToSkip int = 4

output arrayOutput array = skip(testArray, elementsToSkip)
output stringOutput string = skip(testString, charactersToSkip)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
arrayOutput صفيف ["ثلاثة"]
إخراج السلسلة السلسلة‬ اثنان ثلاثة

الوقت المستغرق

take(originalValue, numberToTake)

إرجاع مصفوفة مع عدد محدد من العناصر من بداية المصفوفة أو سلسلة مع عدد محدد من الأحرف من بداية السلسلة.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
القيمة الأصلية ‏‏نعم‬ صفيف أو سلسلة الصفيف أو السلسلة التي يتم أخذ العناصر منها.
الرقم الذي يتم الحصول عليه ‏‏نعم‬ العدد الصحيح عدد العناصر أو الأحرف التي يجب الحصول عليها. إذا كانت هذه القيمة 0 أو أقل، يتم إرجاع صفيف أو سلسلة فارغة. إذا كان أكبر من طول الصفيف أو السلسلة المحددة، فسيتم إرجاع جميع العناصر في المصفوفة أو السلسلة.

قيمة الإرجاع

صفيف أو سلسلة.

مثال

يجمع المثال التالي عدد العناصر المحدد من الصفيف والأحرف من سلسلة.

param testArray array = [
  'one'
  'two'
  'three'
]
param elementsToTake int = 2
param testString string = 'one two three'
param charactersToTake int = 2

output arrayOutput array = take(testArray, elementsToTake)
output stringOutput string = take(testString, charactersToTake)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
arrayOutput صفيف ["واحد"، "اثنان"]
إخراج السلسلة السلسلة‬ تشغيل

union

union(arg1, arg2, arg3, ...)

قم بإرجاع صفيف واحد أو عنصر واحد مع كافة العناصر من المعلمات. بالنسبة للصفائف، يتم تضمين القيم المكررة مرة واحدة. بالنسبة للعناصر، يتم تضمين أسماء الخصائص المكررة مرة واحدة فقط.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ صفيف أو عنصر القيمة الأولى المستخدمة في الانضمام إلى العناصر.
arg2 ‏‏نعم‬ صفيف أو عنصر القيمة الثانية لاستخدامها لضم العناصر.
مزيد من الوسائط لا صفيف أو عنصر المزيد من القيم المستخدمة في الانضمام إلى العناصر.

قيمة الإرجاع

صفيف أو عنصر.

ملاحظات

تستخدم الدالة union تسلسل المعلمات لتحديد ترتيب النتيجة وقيمها.

بالنسبة للصفائف، تتكرر الدالة خلال كل عنصر في المعلمة الأولى وتضيفها إلى النتيجة إذا لم تكن موجودة بالفعل. ثم يكرر العملية للمعلمة الثانية وأي معلمات أخرى. إذا كانت القيمة موجودة بالفعل، فسيتم الاحتفاظ بوضعها السابق في الصفيف.

بالنسبة للعناصر، تُضاف أسماء الخصائص والقيم من المعلمة الأولى إلى النتيجة. بالنسبة للمعلمات اللاحقة، تُضاف أية أسماء جديدة إلى النتيجة. إذا كان لدى معلمة لاحقة خاصية تحمل الاسم نفسه، فستحل هذه القيمة محل القيمة الموجودة. ترتيب الخصائص غير مضمون.

لا تدمج الدالة الموحدة عناصر المستوى الأعلى فحسب، بل تدمج أيضا بشكل متكرر أي كائنات متداخلة داخلها. لا يتم دمج قيم الصفيف المتداخلة. راجع المثال الثاني في القسم التالي.

مثال

يوضح المثال التالي كيفية استخدام التوحيد مع المصفوفات والكائنات:

param firstObject object = {
  one: 'a'
  two: 'b'
  three: 'c1'
}

param secondObject object = {
  three: 'c2'
  four: 'd'
  five: 'e'
}

param firstArray array = [
  'one'
  'two'
  'three'
]

param secondArray array = [
  'three'
  'four'
  'two'
]

output objectOutput object = union(firstObject, secondObject)
output arrayOutput array = union(firstArray, secondArray)

الناتج من المثال السابق مع القيم الافتراضية هو:

Name نوع القيمة‬
objectOutput ‏‏الكائن {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"}
arrayOutput صفيف ["واحد، إثنان، ثلاثة، أربعة"]

يوضح المثال التالي إمكانية الدمج العميق:

var firstObject = {
  property: {
    one: 'a'
    two: 'b'
    three: 'c1'
  }
  nestedArray: [
    1
    2
  ]
}
var secondObject = {
  property: {
    three: 'c2'
    four: 'd'
    five: 'e'
  }
  nestedArray: [
    3
    4
  ]
}
var firstArray = [
  [
    'one'
    'two'
  ]
  [
    'three'
  ]
]
var secondArray = [
  [
    'three'
  ]
  [
    'four'
    'two'
  ]
]

output objectOutput object = union(firstObject, secondObject)
output arrayOutput array = union(firstArray, secondArray)

المخرجات من المثال السابق هي:

Name نوع القيمة‬
objectOutput ‏‏الكائن {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]}
arrayOutput صفيف [["one","two"],["three"],["four","two"]]

إذا تم دمج الصفائف المتداخلة، فستكون قيمة objectOutput.nestedArray [1, 2, 3, 4]، وستكون قيمة arrayOutput [["one", "two", "three"], ["three", "four", "two"]].

الخطوات التالية

  • للحصول على مصفوفة من قيم السلسلة المحددة بقيمة، راجع تقسيم.