2017-01-19 3 views
0

У меня есть JSON массив строк, как это:Я хочу строку, как это в JavaScript

var stringold= [ 
    {"aptid":1,"businesname":"skulink","ownrnm":"rajiv"}, 
    {"aptid":2,"businesname":"prodegios","ownrnm":"sanjeev"} 
] 

Пожалуйста, проверьте ссылку ниже для деталей, что я хочу достичь -

https://datatables.net/examples/data_sources/js_array.html

var newstring=[ 
    ["aptid":1,"businesname":"skulink","ownrnm":"rajiv"], 
    ["aptid":2,"businesname":"prodegios","ownrnm":"sanjeev"] 
] 
+2

Ваш вопрос не ясно .. Вы можете объяснить это подробно, что вы пытаетесь достичь? –

+1

Ваш вопрос непонятен – Bharat

+1

Ваш вопрос очень неясен, а ваша 'newstring' недействительна Javascript. –

ответ

0

Попробуйте выполнить итерацию по массиву объекта, а для 1-го объекта просто получите имена столбцов, так как все они будут одинаковыми и для всех объектов, которые будут перебирать его, чтобы сделать данные

var stringold= [ 
 
{"aptid":1,"businesname":"skulink","ownrnm":"rajiv"}, 
 
{"aptid":2,"businesname":"prodegios","ownrnm":"sanjeev"} 
 
] 
 

 
var columns = []; 
 
var data = []; 
 

 
//using forEach 
 
/*stringold.forEach(function(ele,ind){ 
 
    var dummy = []; 
 
    for(var prop in ele){ 
 
    if(ind == 0){ 
 
     columns.push({title:prop}) 
 
    } 
 
    
 
    dummy.push(ele[prop]); 
 
    } 
 
    data.push(dummy); 
 
    
 
});*/ 
 

 
//using loop 
 
for(var i=0;i<stringold.length;i++){ 
 
    var ele = stringold[i] 
 
    var dummy = []; 
 
    for(var prop in ele){ 
 
    if(i == 0){ 
 
     columns.push({title:prop}) 
 
    } 
 
    
 
    dummy.push(ele[prop]); 
 
    } 
 
    data.push(dummy); 
 
    
 
}; 
 
console.log(columns,data);

+0

ошибка получения: 0x800a01b6 - ошибка выполнения JavaScript: объект не поддерживает свойство или метод 'forEach' –

+0

, какой браузер вы используете? forEach over array - это продвинутый JS, если foreach дает u problemns изменить его на for (var i = o; i

+0

chrome, mozilla.ie –

-1

ли NewString даже законный синтаксис ... Вы пытаетесь деформировать массив Arround объекта. Позвольте мне угадать, что вы пытаетесь получить доступ к своему коду, но вы не знаете, как получить к нему доступ с помощью объекта. Здесь вы идете, приятель;

var stringold= [ 
 
    {"aptid":1,"businesname":"skulink","ownrnm":"rajiv"}, 
 
    {"aptid":2,"businesname":"prodegios","ownrnm":"sanjeev"} 
 
]; 
 
//Access aptid of the first line 
 
id = stringold[0].aptid; 
 
//Access businesname from all lines & change their value 
 
for (i = 0; i < stringold.length; i++) { 
 
    stringold[0].businesname = "businesplaceholder"; 
 
} 
 
//get keynames 
 
a = stringold[0]; 
 
myKeys = Object.keys(a); 
 
console.log(myKeys); 
 
//loop through first object 
 
b = stringold[0]; 
 
for (key in b) { 
 
    console.log(b[key]) 
 
} 
 
//add something to the first object 
 
stringold[0].newVal = "Value"; 
 
//so to add this for all lines 
 
for (j= 0; j < stringold.length; j++) { 
 
    stringold[j].newVal = "Value"; 
 
} 
 
//Brute force single key 
 
//here's a fix for e['datakey[f]'] >> e[x] 
 
vix = function(e,f){ 
 
\t a = "string"; 
 
\t e[a] = datakey[f]; 
 
\t x = e.string; 
 
\t end = e[x]; 
 
\t delete e.string; 
 
\t return end; 
 
}; 
 
a = stringold[0]; 
 
vix(a,1); //for a.businesname 
 

 
//here's a fix to define that variable 
 
vox = function(e,f,string){ 
 
\t a = "string"; 
 
\t e[a] = datakey[f]; 
 
\t x = e.string; 
 
\t end = e[x] = string; 
 
\t delete e.string; 
 
}; 
 
a = stringold[0]; 
 
vox(a,1,"newname"); //for a.businesname

0

Вы можете перебирать объекты, а затем ключи от объекта и отображения значений.

var arrayOld = [{ aptid: 1, businesname: "skulink", ownrnm: "rajiv" },{ aptid: 2, businesname: "prodegios", ownrnm: "sanjeev" }], 
 
    arrayNew = arrayOld.map(function (o) { 
 
     return Object.keys(o).map(function (k) { 
 
      return o[k]; 
 
     }); 
 
    }); 
 

 
console.log(arrayNew);
.as-console-wrapper { max-height: 100% !important; top: 0; }

Смежные вопросы