2017-07-20 37 views
0
存儲在JavaScript陣列

我是新使用JS,我不得不函數存儲對象數組角模型, 例如:如何使用angularjs

function getSpec(){ 
    debugger 
    var i; 
    for(i=0;i<main.specifications.length;i++){ 
     main.newProduct.Specification= ("{\""+main.specifications[i].key+"\":\""+main.specifications[i].value+"\"}"); 

    } 
} 

main.newProduct.Specification是一個模式,我想存儲鍵和值根據數組長度。 ,我想存儲到數據庫像:{"Ram":"1GB","Color":"BLACK"}

我該怎麼辦?

回答

0

如果main.newProduct.Specification爲對象,那麼你可以使用main.newProduct.Specification[main.specifications[i].key] = main.specifications[i].value;

function getSpec(){ 
     debugger 
     var i; 
     for(i=0;i<main.specifications.length;i++){ 
     var temp = {}; 
     temp[main.specifications[i].key]=main.specifications[i].value;     
     main.newProduct.Specification.push(temp); 
     } 
    } 
+0

嗨,感謝您的反饋,我認爲這是一個誤解,我的意思是我可以顯示鍵的價值和價值的價值..但如果我把它放在裏面,它只顯示一個,但我想顯示所有數組長度的值,如果我有長度= 4,那麼我想在一個顯示器中顯示它們,可以嗎? –

+0

我修改了答案。我可以知道你如何在UI中展示嗎? –

0

更改getSpec()創建如下鍵值對:

function getSpec(){ 
    debugger 
    var i; 
    main.newProduct.Specification = main.newProduct.Specification || {}; // This is optional, and is just a fallback 

    for(i = 0; i < main.specifications.length; i++) { 
    main.newProduct.Specification[main.specifications[i].key] = main.specifications[i].value; 
    } 
} 

上面有一個空的對象初始化main.newProduct.Specification,如果它是不是已經初始化並將所有屬性追加到它。

更新

上面也可以減小到這樣的:

function getSpec() { 
    main.newProduct.Specification = main.specifications.reduce(function(obj, item) { 
    obj[item.key] = item.value; 
    return obj; 
    }, {}); 
} 
0

使用ES6 for...of嘗試此溶液循環:

let mainObj = { 
 
    "specifications" : [ 
 
    { "key":"Ram", "value":"1GB" }, 
 
    { "key":"Color", "value":"BLACK" } 
 
    ] 
 
}; 
 

 
mainObj.newProduct = { 
 
\t "specifications" : {} 
 
} 
 
for (let i of mainObj.specifications) { 
 
    mainObj.newProduct.specifications[i.key] = i.value; 
 
} 
 

 
console.log(mainObj.newProduct.specifications);