Преобразовать массив в объект

Просто скопируйте свой скрипт и поставьте под "" "весь ваш код" "" ...

укажите эту строку в переменной .. like,

a = """ your python script """
print a.replace('here please press tab button it will insert some space"," here simply press space bar four times")
# here we replacing tab space by four char space as per pep 8 style guide..

now выполните этот код, в Sublime Editor, используя ctrl + b, теперь он будет печатать отступы в консоли. вот он

404
задан Nick 17 September 2018 в 08:58
поделиться

4 ответа

Я бы использовал подчеркивание для этого, но если это не доступно, я бы опустился до использования Reduce с начальным значением пустого объекта. {}

>>> ['a', 'b', 'c'].reduce(function(p, c, i) {p[i] = c; return p}, {})
Object { 0="a", 1="b", 2="c"}

уменьшение должно быть широко доступно в большинство браузеров сегодня, см. MDN

.
0
ответ дан Meitham 17 September 2018 в 08:58
поделиться
.reduce((o,v,i)=>(o[i]=v,o), {})

[документы]

или более подробный

var trAr2Obj = function (arr) {return arr.reduce((o,v,i)=>(o[i]=v,o), {});}

или

var transposeAr2Obj = arr=>arr.reduce((o,v,i)=>(o[i]=v,o), {})

самый короткий с ванильным JS

JSON.stringify([["a", "X"], ["b", "Y"]].reduce((o,v,i)=>{return o[i]=v,o}, {}))
=> "{"0":["a","X"],"1":["b","Y"]}"

несколько более сложный пример

[["a", "X"], ["b", "Y"]].reduce((o,v,i)=>{return o[v[0]]=v.slice(1)[0],o}, {})
=> Object {a: "X", b: "Y"}

еще короче (используя function(e) {console.log(e); return e;} === (e)=>(console.log(e),e))

 nodejs
> [[1, 2, 3], [3,4,5]].reduce((o,v,i)=>(o[v[0]]=v.slice(1),o), {})
{ '1': [ 2, 3 ], '3': [ 4, 5 ] }

[/ docs]

3
ответ дан test30 17 September 2018 в 08:58
поделиться

[Еще 118] браузер поддерживал и более гибкий способ сделать, который использует нормальное цикл , что-то как:

const arr = ['a', 'b', 'c'],
obj = {};

for (let i=0; i<arr.length; i++) {
   obj[i] = arr[i];
}

, Но также и современный путь мог использовать оператор распространения, как:

{...arr}

Или Объект присваиваются :

Object.assign({}, ['a', 'b', 'c']);

Оба будет возврат :

{0: "a", 1: "b", 2: "c"}
1
ответ дан 22 November 2019 в 23:09
поделиться

Попытайтесь использовать, отражаются для копирования с объекта массива для возражения.

var arr =['aa:23','bb:44','cc:55']
    var obj ={}
    arr.forEach(e => {
        var ee = e.split(':')
        Reflect.set(obj,ee[0],ee[1])
    });
    console.log(obj) // { aa: '23', bb: '44', cc: '55' }
0
ответ дан 22 November 2019 в 23:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: