拆分为数组并作为参数传递

split into array and pass as arguments

本文关键字:参数传递 数组 拆分      更新时间:2023-09-26

我有一个字符串,我想打断它,并像函数中的参数一样传递它的一半。但函数将参数视为一个整体。示例:aaa,bbb,ccc(3个参数),但它理解一个参数'aaa,bbb,ccc'。我该怎么做?

var text = "aaa,bbb,ccc@dd,eee,fff"
var itens_menu = text.split('@');
var item_menu1 = itens_menu[0];
var item_menu2 = itens_menu[1];
item = Menu(itens_menu[0]);
item2 = Menu(itens_menu[1]);

function Menu()
{
    var ItemText = arguments[0];
}

.split()中的每个值。但是您还需要将正确的变量传递给Menu。你在itens_menu[0]中通过,但你应该在item_menu1中通过。

选项1:使用参数

var text = "aaa,bbb,ccc@dd,eee,fff"
var itens_menu = text.split('@');
var item_menu1 = itens_menu[0].split(',');
var item_menu2 = itens_menu[1].split(',');
var item = Menu(item_menu1);
var item2 = Menu(item_menu2);
function Menu() {
  var ItemText = arguments[0]; // this is the array
  console.log(ItemText);
  
  // if you are wanting to first value of the array, you would do
  // console.log(ItemText[0]) which would be either aaa, or dd
}


选项2:使用apply

如果您希望将所有值作为单独的参数传递给Menu,那么您需要将数组apply传递到Menu。然后,当你引用arguments对象时,你会得到字符串值:

var text = "aaa,bbb,ccc@dd,eee,fff"
var itens_menu = text.split('@');
var item_menu1 = itens_menu[0].split(',');
var item_menu2 = itens_menu[1].split(',');
var item = Menu.apply(null, item_menu1);
var item2 = Menu.apply(null, item_menu2);
function Menu() {
  var ItemText = arguments[0];
  console.log(ItemText);
}

您应该再次应用.split,还可以将数组项作为单个参数传递:

var text = "aaa,bbb,ccc@dd,eee,fff"
var itens_menu = text.split('@');
var item_menu1 = itens_menu[0].split(',');
var item_menu2 = itens_menu[1].split(',');
var item = Menu.apply(null, item_menu1);
var item2 = Menu.apply(null, item_menu2);

function Menu() {
  console.log(arguments); // you'll have all the items as a single argument
  // so
  console.log(arguments[0]); 
  //this will return aaa for "item_menu1" and dd for "item_menu2"
}
var text = "aaa,bbb,ccc@dd,eee,fff"
var itens_menu = text.split(',');
item = Menu(itens_menu[0]);
item2 = Menu(itens_menu[1]);

function Menu()
{
    var ItemText = arguments[0];
    alert(ItemText);
}
var
    text = "aaa,bbb,ccc@dd,eee,fff",
    items_menu = text.split('@'),
    item_menu1 = items_menu[0],
    item_menu2 = items_menu[1],
    item  = Menu.apply(null, item_menu1.split(',')),
    item2 = Menu.apply(null, item_menu2.split(','));

function Menu(entry1, entry2, entry3) {
    console.log('arguments[0] : ', arguments[0]);
    console.log('arguments[1] : ', arguments[1]);
    console.log('arguments[2] : ', arguments[2]);
    return {
        entry1: entry1,
        entry2: entry2,
        entry3: entry3
    };
}

console.log('item : ', item);
console.log('item2 : ', item2);