اترك nestedArray = [// top، or first level - the external most array]على الرغم من أن هذا المثال قد يبدو معقدًا ، إلا أن هذا المستوى من التعقيد لم يسمع به ، أو حتى غير معتاد ، عند التعامل مع كميات كبيرة من البيانات. ومع ذلك ، لا يزال بإمكاننا الوصول بسهولة إلى أعمق مستويات صفيف هذا المركب مع تدوين قوس:
['عميق'] ، // مصفوفة داخل صفيف ، مستويين من العمق
[
['أعمق'] ، ['أعمق'] // / 2 صفيف متداخلة 3 مستويات عميقة
]،
[
[
['أعمق'] ، [أعمق]] / / 2 صفيف متداخلة 4 مستويات عميقة
]،
[
[
['deepest-est؟'] // مجموعة متداخلة 5 مستويات عميقة
]
]
]
].
console.log (nestedArray [2] [1] [0] [0] [0])؛والآن بعد أن علمنا بمكان هذه البيانات ، يمكننا إعادة تعيينها إذا كنا بحاجة إلى:
// logs: deepest-est؟
nestedArray [2] [1] [0] [0] [0] = 'deep still'؛
console.log (nestedArray [2] [1] [0] [0] [0])؛
// الآن سجلات: أعمق لا يزال
myNestedArray
، متساوياً مع صفيف. تعديل myNestedArray
، وذلك باستخدام أي مجموعة من السلاسل والأرقام والقيم المنطقية لعناصر البيانات، بحيث انها بالضبط خمسة مستويات من العمق (تذكر، ومجموعة الخارجي، أكثر من غيره هو مستوى 1). في مكان ما في المستوى الثالث ، تتضمن السلسلة 'deep'
، في المستوى الرابع ، وتشمل السلسلة 'deeper'
، وعلى المستوى الخامس ، تتضمن السلسلة 'deepest'
. myNestedArray
على أرقام فقط ، وحدات منطقية ، وسلاسل مثل عناصر البيانات
testString: 'assert.strictEqual((function(arr) { let flattened = (function flatten(arr) { const flat = [].concat(...arr); return flat.some (Array.isArray) ? flatten(flat) : flat; })(arr); for (let i = 0; i < flattened.length; i++) { if ( typeof flattened[i] !== "number" && typeof flattened[i] !== "string" && typeof flattened[i] !== "boolean") { return false } } return true })(myNestedArray), true, "myNestedArray
should contain only numbers, booleans, and strings as data elements");'
- text: يجب أن يكون myNestedArray
5 مستويات عمق
testString: 'assert.strictEqual((function(arr) {let depth = 0;function arrayDepth(array, i, d) { if (Array.isArray(array[i])) { arrayDepth(array[i], 0, d + 1);} else { depth = (d > depth) ? d : depth;}if (i < array.length) { arrayDepth(array, i + 1, d);} }arrayDepth(arr, 0, 0);return depth;})(myNestedArray), 4, "myNestedArray
should have exactly 5 levels of depth");'
- text: يجب أن يحتوي myNestedArray
على تكرار واحد لسلسلة "deep"
على صفيف متداخلة من 3 مستويات
testString: 'assert((function howDeep(array, target, depth = 0) {return array.reduce((combined, current) => {if (Array.isArray(current)) { return combined.concat(howDeep(current, target, depth + 1));} else if (current === target) { return combined.concat(depth);} else { return combined;}}, []);})(myNestedArray, "deep").length === 1 && (function howDeep(array, target, depth = 0) {return array.reduce((combined, current) => {if (Array.isArray(current)) { return combined.concat(howDeep(current, target, depth + 1));} else if (current === target) { return combined.concat(depth);} else { return combined;}}, []);})(myNestedArray, "deep")[0] === 2, "myNestedArray
should contain exactly one occurrence of the string "deep"
on an array nested 3 levels deep");'
- text: يجب أن يحتوي myNestedArray
على تكرار واحد فقط للسلسلة "deeper"
على صفيف متداخلة 4 مستويات متداخلة
testString: 'assert((function howDeep(array, target, depth = 0) {return array.reduce((combined, current) => {if (Array.isArray(current)) { return combined.concat(howDeep(current, target, depth + 1));} else if (current === target) { return combined.concat(depth);} else { return combined;}}, []);})(myNestedArray, "deeper").length === 1 && (function howDeep(array, target, depth = 0) {return array.reduce((combined, current) => {if (Array.isArray(current)) { return combined.concat(howDeep(current, target, depth + 1));} else if (current === target) { return combined.concat(depth);} else { return combined;}}, []);})(myNestedArray, "deeper")[0] === 3, "myNestedArray
should contain exactly one occurrence of the string "deeper"
on an array nested 4 levels deep");'
- text: يجب أن يحتوي myNestedArray
على تكرار واحد لسلسلة "deepest"
على مجموعة متداخلة من 5 مستويات متداخلة
testString: 'assert((function howDeep(array, target, depth = 0) {return array.reduce((combined, current) => {if (Array.isArray(current)) { return combined.concat(howDeep(current, target, depth + 1));} else if (current === target) { return combined.concat(depth);} else { return combined;}}, []);})(myNestedArray, "deepest").length === 1 && (function howDeep(array, target, depth = 0) {return array.reduce((combined, current) => {if (Array.isArray(current)) { return combined.concat(howDeep(current, target, depth + 1));} else if (current === target) { return combined.concat(depth);} else { return combined;}}, []);})(myNestedArray, "deepest")[0] === 4, "myNestedArray
should contain exactly one occurrence of the string "deepest"
on an array nested 5 levels deep");'
```