请补全JavaScript代码,要求以键/值对的对象形式返回参数数组。要求如下:
1. 键名的数据类型为Symbol
2. 键值为当前数组项
3. Symbol的描述为当前数组项
4. 返回普通对象
<!DOCTYPE html> <html> <head> <meta charset=utf-8> </head> <body> <script type="text/javascript"> const _symbolKey = array => { // 补全代码 let obj = new Object(); array.forEach(v=>{ obj[Symbol(v)]=v; }) return obj; } </script> </body> </html>
const _symbolKey = array => { // 补全代码 let obj = {}; for (const element of array.entries()) { console.log(element) let key = Symbol(); key = element[0] obj[key] = element[1] } return obj; } 为啥不行啊
const _symbolKey = array => { // 补全代码 let obj = new Object(); for(let i = 0,j = 1;i < array.length;i++,j++){ obj[Symbol(j)] = array[i] } return obj; }
感觉题目表述有问题
<!DOCTYPE html> <html> <head> <meta charset=utf-8> </head> <body> <script type="text/javascript"> const _symbolKey = array => { // 补全代码 return array.reduce((acc,curr)=>{ acc[Symbol(curr)]=curr return acc },{}) } </script> </body> </html>
const _symbolKey = array => { let obj=[] array.forEach(item=>{ obj[Symbol(item)]=item }) return obj }
<!DOCTYPE html> <html> <head> <meta charset=utf-8> </head> <body> <script type="text/javascript"> const _symbolKey = array => { // 补全代码 let obj = {} array.forEach(item=>{ obj[Symbol(item)] = item }) return obj } </script> </body> </html>
const _symbolKey = array => { let obj = {} for (let i = 0; i < array.length; i++) { let key = Symbol(array[i]) obj[key] = array[i] } return obj } let array = [123, 2] console.log(_symbolKey(array)) //{ [Symbol(123)]: 123, [Symbol(2)]: 2 } // 可以看到答案要求 let ans = function () { let o = _symbolKey([1, 2]); return Object.getOwnPropertySymbols(o)[0].toString() === 'Symbol(1)' && Object.getOwnPropertySymbols(o)[1].toString() === 'Symbol(2)' } console.log(ans())//true