Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   замена значения в массиве (https://javascript.ru/forum/misc/56933-zamena-znacheniya-v-massive.html)

nikto93i7 10.07.2015 16:38

замена значения в массиве
 
Всем привет!) не могу понять как лучше сделать... :write:

есть два куска кода (весь не стал кидать т.к. большой). Как связать элементы в массиве?
1-й
series : [{
			color : Highcharts.getOptions().colors[3], // красный
			name : 'Negative Difference',
			data : negative = [15, 0, 0, 0, 0, 0, 0, 0],
			stack : '1'
		}, {
			name : 'I.C.E.', // серый
			data : ice = [17, 12, 12, 12, 12, 12, 12, 12],
			stack : '1'
		}, {
			color : Highcharts.getOptions().colors[2], // зеленый
			name : 'Positive Difference',
			data : positive = [0, 7, 7, 7, 7, 7, 7, 7],
			stack : '3'
		}, {
			color : Highcharts.getOptions().colors[1], // оранжевый
			name : 'Charge',
			data : charge = [32, 5, 5, 5, 5, 5, 5, 5],
			stack : '3'
		}]


2-й
series: [{
            upColor: Highcharts.getOptions().colors[2],
            color: Highcharts.getOptions().colors[3],
            data: [{
                name: '0',
                y: saving0 = (-15)
            }, {
                name: '1',
                y: saving1 = 7
            }, {
                name: '2',
                y: saving2 = 7
            }, {
                name: '3',
                y: saving3 = 7
            }, {
                name: '4',
                y: saving4 = 7
            }, {
                name: '5',
                y: saving5 = 7
            }, {
                name: '6',
                y: saving6 = 7
            }, {
                name: '7',
                y: saving7 = 7
            }, {
                name: 'Total',
                isIntermediateSum: true,
                color: Highcharts.getOptions().colors[2]
            },],


Как сделать так, чтоб при замене числа "15" (в коде 1), значение подставлялось (в код 2) со знаком минус, а 7-ки из (кода 1) так же переходили в (код 2)? (число 15 и 7-и могут в дальнейшем меняться, но это другая история :) )

Буду очень признателен за помощь!)) :thanks:

jackdempsey2015 10.07.2015 21:15

Цитата:

Сообщение от nikto93i7
y: saving7 = 7

слушай, а ведь такого синтаксиса нет в JS. И то что ты написал, вообще не понятно. Попробуй просто описать словами задачу чтоли, то есть, не то как код должен, по твоему мнению, работать, а что он должен делать. Может тогда кто поможет. Подозреваю, что никто тебя не понял.

kostyanet 10.07.2015 21:16

А это уловка. ТС поменял рубрику уповая что в другой его поймут и приголубят. Потому что в той его уже напинали :)

Deff 10.07.2015 21:42

var data = [{ y:saving0=(-15)}]
alert(data[0].y)

jackdempsey2015 10.07.2015 21:55

Deff,
Да, насчет синтаксиса, это я погорячился. Но saving0 попадает в глобальный объект при этом. Это что, так и задумано чтоли?

nikto93i7 10.07.2015 22:16

Сейчас попробую объяснить)))

есть вот такой массив в первом коде negative = [15, 0, 0, 0, 0, 0, 0, 0]
вот такой во втором коде saving0 = 0

как сделать так, чтоб число 15 из массива подставлялось вместо нуля во втором куске кода и было со знаком минус?

Deff 10.07.2015 22:34

jackdempsey2015,
Не - тут кнешн ляп, но прост многие спешат вывод сделать, - поэтому показал тест
Если переменная действительно нужна, - их нун наверно определить не в глобале
К примеру:
var data = [{ y:saving0=(-15)}], saving0,saving1,...

jackdempsey2015 10.07.2015 23:52

Data=function(name, coObject){
  this.name=name
  this.coObject=coObject
}

Object.defineProperty(Data.prototype, "y", {get: function(){return -this.coObject[0]}})

series1=[{
            color : "foo",
            name : 'Negative Difference',
            data : [15, 0, 0, 0, 0, 0, 0, 0],
            stack : '1'
        }]

series2=[{
            upColor: "foo",
            color: "foo",
            data: [new Data("0", series1[0].data)]
        }]

alert(series2[0].data[0].y)

series1[0].data[0]=20

alert(series2[0].data[0].y)


//>>>> -15
//>>>> -20

nikto93i7 11.07.2015 02:15

А вот за это огромное спасибо!!!)))) :thanks:

рони 11.07.2015 02:33

нефига не понял ни вопроса ни ответа


Часовой пояс GMT +3, время: 01:04.