Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F4502942
test_in_operator.cjs
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
test_in_operator.cjs
View Options
// Test 'in' operator and for-in loops
console.log('=== In Operator and For-In Tests ===');
// Test 1: Basic 'in' operator with object
console.log('\nTest 1: Basic in operator');
const obj1 = { name: 'test', value: 42, flag: true };
console.log("'name' in obj1: " + ('name' in obj1));
console.log("'value' in obj1: " + ('value' in obj1));
console.log("'missing' in obj1: " + ('missing' in obj1));
// Test 2: 'in' operator with arrays
console.log('\nTest 2: In operator with arrays');
const arr = [10, 20, 30];
console.log("'0' in arr: " + ('0' in arr));
console.log("'1' in arr: " + ('1' in arr));
console.log("'5' in arr: " + ('5' in arr));
console.log("'length' in arr: " + ('length' in arr));
// Test 3: Basic for-in loop with object
console.log('\nTest 3: For-in loop with object');
const obj2 = { a: 1, b: 2, c: 3 };
let keys = '';
for (let key in obj2) {
keys = keys + key + ',';
}
console.log('Keys: ' + keys);
// Test 4: For-in loop with const
console.log('\nTest 4: For-in with const');
const obj3 = { x: 10, y: 20 };
for (const prop in obj3) {
console.log('Property: ' + prop + ' = ' + obj3[prop]);
}
// Test 5: For-in loop accumulating values
console.log('\nTest 5: For-in accumulating values');
const obj4 = { first: 5, second: 10, third: 15 };
let sum = 0;
for (let k in obj4) {
sum = sum + obj4[k];
}
console.log('Sum of values: ' + sum);
// Test 6: For-in with break
console.log('\nTest 6: For-in with break');
const obj5 = { a: 1, b: 2, c: 3, d: 4 };
let count = 0;
for (let key in obj5) {
count = count + 1;
if (count === 2) {
break;
}
console.log('Key: ' + key);
}
console.log('Stopped at count: ' + count);
// Test 7: For-in with continue
console.log('\nTest 7: For-in with continue');
const obj6 = { a: 1, b: 2, c: 3, d: 4 };
for (let key in obj6) {
if (key === 'b' || key === 'd') {
continue;
}
console.log('Processing: ' + key);
}
// Test 8: For-in with array
console.log('\nTest 8: For-in with array');
const arr2 = ['first', 'second', 'third'];
for (let idx in arr2) {
console.log('Index ' + idx + ': ' + arr2[idx]);
}
// Test 9: Nested for-in loops
console.log('\nTest 9: Nested for-in loops');
const outer = { a: { x: 1, y: 2 }, b: { x: 3, y: 4 } };
for (let key1 in outer) {
for (let key2 in outer[key1]) {
console.log(key1 + '.' + key2 + ' = ' + outer[key1][key2]);
}
}
// Test 10: In operator with nested properties
console.log('\nTest 10: In operator with nested object');
const nested = { outer: { inner: 'value' } };
console.log("'outer' in nested: " + ('outer' in nested));
console.log("'inner' in nested: " + ('inner' in nested));
// Test 11: For-in counting properties
console.log('\nTest 11: Counting properties with for-in');
const obj7 = { prop1: 'a', prop2: 'b', prop3: 'c', prop4: 'd' };
let propCount = 0;
for (let p in obj7) {
propCount = propCount + 1;
}
console.log('Property count: ' + propCount);
// Test 12: For-in with empty object
console.log('\nTest 12: For-in with empty object');
const empty = {};
let ranOnce = false;
for (let k in empty) {
ranOnce = true;
}
console.log('Loop ran: ' + ranOnce);
// Test 13: In operator with different types
console.log('\nTest 13: In operator checks');
const testObj = { num: 42, str: 'hello', bool: true };
console.log("'num' in testObj: " + ('num' in testObj));
console.log("'str' in testObj: " + ('str' in testObj));
console.log("'bool' in testObj: " + ('bool' in testObj));
// Test 14: For-in modifying external variable
console.log('\nTest 14: For-in with external variable');
const data = { a: 10, b: 20, c: 30 };
let total = 0;
for (let key in data) {
total = total + data[key];
}
console.log('Total: ' + total);
// Test 15: For-in with conditional logic
console.log('\nTest 15: For-in with conditional');
const items = { item1: 5, item2: 15, item3: 25, item4: 35 };
let filtered = 0;
for (let name in items) {
if (items[name] > 10) {
filtered = filtered + items[name];
}
}
console.log('Filtered sum (>10): ' + filtered);
console.log('\n=== All in operator tests completed ===');
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, May 3, 9:18 AM (1 d, 16 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
524062
Default Alt Text
test_in_operator.cjs (3 KB)
Attached To
Mode
rANT Ant
Attached
Detach File
Event Timeline
Log In to Comment