array javascript 循环错误
array javascript loop wrong
这是一个简单的问题,但我无法解决。总是当我托盘在我的数组 return 索引 0
中做 loopp
<script>
let status = [];
let number = [];
let llamadas = [];
llamadas = {!! json_encode($estados) !!}
for(var i=0; i<llamadas.length; i++){
console.log(llamadas[i][i]);
status.push(llamadas[i][i].desc);
number.push(llamadas[i][i].total)
}
llamadas
这是我来自控制器的变量,我正在使用 laravel 5.6 后端如何
llamadas
包含这个:
(7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]
0: {id_teleoperadora: 9, desc: "APLAZADA", total: 40}
1: {id_teleoperadora: 9, desc: "AUSENTE", total: 132}
2: {id_teleoperadora: 9, desc: "CONFIRMADA", total: 218}
3: {id_teleoperadora: 9, desc: "NUEVA", total: 101}
4: {id_teleoperadora: 9, desc: "NULA", total: 217}
5: {id_teleoperadora: 9, desc: "PENDIENTE", total: 45}
6: {id_teleoperadora: 9, desc: "VENTA", total: 1}
length: 7
__proto__: Array(0)
和他的原始内容内容
[Array(7)]
0: (7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]
length: 1
__proto__: Array(0)
我从来没有用这种方式显示一个数组
在推送中,我需要提取 desc
以使用 chart.js 构建静态。现在我只能 return 一个状态。我不知道我做错了。当我有 status
我会继续 number
但现在我只能 return 一个结果 status "aplazada"
我不知道我是否做得好我的 pushs
感谢帮助
我的控制器出现错误,应该是:
public function getStateCallCommercial($operadora)
{
$callSend = array();
array_push($callSend, \DB::select(
\DB::raw("SELECT L.id_teleoperadora, CE.desc, COUNT(C.id) as total
FROM LLAMADA L
JOIN CITA C ON L.ID = C.id_llamada
JOIN CITA_ESTADO CE ON C.id_estado = CE.id
WHERE L.id_teleoperadora = $operadora
AND L.id_estado = 5
GROUP BY L.id_teleoperadora, CE.desc
ORDER BY CE.desc;" ) )
);
return view('admin.estadisticas.index')->with('estados', $callSend[0]);
这会将我的数据发送给您查看。在我的 blade:
<script>
let status = [];
let number = [];
let llamadas = [];
llamadas = {!! json_encode($estados) !!};
for(var i=0; i<llamadas.length; i++){
status.push(llamadas[i].desc);
number.push(llamadas[i].total)
}
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: status,
datasets: [{
label: 'Estado de las llamadas pasadas a comerciales',
data: number,
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
borderWidth: 1
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
});
用这个我构建了我的图形。
感谢大家的回复和帮助
var llamadas =[{id_teleoperadora: 9, desc: "APLAZADA", total: 40},
{id_teleoperadora: 9, desc: "AUSENTE", total: 132},
{id_teleoperadora: 9, desc: "CONFIRMADA", total: 218},
{id_teleoperadora: 9, desc: "NUEVA", total: 101},
{id_teleoperadora: 9, desc: "NULA", total: 217},
{id_teleoperadora: 9, desc: "PENDIENTE", total: 45},
{id_teleoperadora: 9, desc: "VENTA", total: 1}];
/**
if above is your structure you can do this.
*/
let status = [];
let number = [];
for(var i=0;i<llamadas.length;i++){
status.push(llamadas[i].desc);
number.push(llamadas[i].total);
}
console.log(status);
console.log(number);
console.log("---------seperation-------------------");
/**
if above is your structure like this
[Array(7)]
0: (7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]
length: 1
__proto__: Array(0)
you can see in array is containing array but always in 0th position.
you can do this.
*/
var d=[llamadas]//this will give you [Array(7)] structure.
var ll=d[0];//this will give you llamadas single dimesion array.
let status2 = [];
let number2 = [];
for(var i=0;i<ll.length;i++){
status2.push(ll[i].desc);
number2.push(ll[i].total)
}
console.log(status2);
console.log(number2);
这是一个简单的问题,但我无法解决。总是当我托盘在我的数组 return 索引 0
中做 loopp<script>
let status = [];
let number = [];
let llamadas = [];
llamadas = {!! json_encode($estados) !!}
for(var i=0; i<llamadas.length; i++){
console.log(llamadas[i][i]);
status.push(llamadas[i][i].desc);
number.push(llamadas[i][i].total)
}
llamadas
这是我来自控制器的变量,我正在使用 laravel 5.6 后端如何
llamadas
包含这个:
(7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]
0: {id_teleoperadora: 9, desc: "APLAZADA", total: 40}
1: {id_teleoperadora: 9, desc: "AUSENTE", total: 132}
2: {id_teleoperadora: 9, desc: "CONFIRMADA", total: 218}
3: {id_teleoperadora: 9, desc: "NUEVA", total: 101}
4: {id_teleoperadora: 9, desc: "NULA", total: 217}
5: {id_teleoperadora: 9, desc: "PENDIENTE", total: 45}
6: {id_teleoperadora: 9, desc: "VENTA", total: 1}
length: 7
__proto__: Array(0)
和他的原始内容内容
[Array(7)]
0: (7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]
length: 1
__proto__: Array(0)
我从来没有用这种方式显示一个数组
在推送中,我需要提取 desc
以使用 chart.js 构建静态。现在我只能 return 一个状态。我不知道我做错了。当我有 status
我会继续 number
但现在我只能 return 一个结果 status "aplazada"
我不知道我是否做得好我的 pushs
感谢帮助
我的控制器出现错误,应该是:
public function getStateCallCommercial($operadora)
{
$callSend = array();
array_push($callSend, \DB::select(
\DB::raw("SELECT L.id_teleoperadora, CE.desc, COUNT(C.id) as total
FROM LLAMADA L
JOIN CITA C ON L.ID = C.id_llamada
JOIN CITA_ESTADO CE ON C.id_estado = CE.id
WHERE L.id_teleoperadora = $operadora
AND L.id_estado = 5
GROUP BY L.id_teleoperadora, CE.desc
ORDER BY CE.desc;" ) )
);
return view('admin.estadisticas.index')->with('estados', $callSend[0]);
这会将我的数据发送给您查看。在我的 blade:
<script>
let status = [];
let number = [];
let llamadas = [];
llamadas = {!! json_encode($estados) !!};
for(var i=0; i<llamadas.length; i++){
status.push(llamadas[i].desc);
number.push(llamadas[i].total)
}
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: status,
datasets: [{
label: 'Estado de las llamadas pasadas a comerciales',
data: number,
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
borderWidth: 1
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
});
用这个我构建了我的图形。
感谢大家的回复和帮助
var llamadas =[{id_teleoperadora: 9, desc: "APLAZADA", total: 40},
{id_teleoperadora: 9, desc: "AUSENTE", total: 132},
{id_teleoperadora: 9, desc: "CONFIRMADA", total: 218},
{id_teleoperadora: 9, desc: "NUEVA", total: 101},
{id_teleoperadora: 9, desc: "NULA", total: 217},
{id_teleoperadora: 9, desc: "PENDIENTE", total: 45},
{id_teleoperadora: 9, desc: "VENTA", total: 1}];
/**
if above is your structure you can do this.
*/
let status = [];
let number = [];
for(var i=0;i<llamadas.length;i++){
status.push(llamadas[i].desc);
number.push(llamadas[i].total);
}
console.log(status);
console.log(number);
console.log("---------seperation-------------------");
/**
if above is your structure like this
[Array(7)]
0: (7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]
length: 1
__proto__: Array(0)
you can see in array is containing array but always in 0th position.
you can do this.
*/
var d=[llamadas]//this will give you [Array(7)] structure.
var ll=d[0];//this will give you llamadas single dimesion array.
let status2 = [];
let number2 = [];
for(var i=0;i<ll.length;i++){
status2.push(ll[i].desc);
number2.push(ll[i].total)
}
console.log(status2);
console.log(number2);