如何删除字符串数组的一部分?

时间:2018-07-17 14:45:37

标签: javascript arrays

我有一个像这样的数组:

var questions = [
"text",
"text",
"text",
"text"
]

我要删除此内容:

questions[0]

我已经尝试过了,但是它什么也没做:

questions.splice(0, 1);

有什么建议吗?谢谢

7 个答案:

答案 0 :(得分:3)

  

我已经尝试过了,但是它什么也没做:

不,那不是事实。 splice()在这里做两件事:

  1. 它从指定位置删除该项目(修改原始数组)。
  2. 它返回已删除的项目。

var questions = [
"text1",
"text2",
"text3",
"text4"
]

var removedItem = questions.splice(0, 1);
console.log(removedItem);
console.log(questions);

如果您确实要删除第一项,则可以使用Array.prototype.shift()它将从数组中删除第一项:

var questions = [
"text1",
"text2",
"text3",
"text4"
]
questions.shift()
console.log(questions)

答案 1 :(得分:1)

Splice将返回从数组中删除的元素。它就地修改阵列。要查看更改,可以在拼接后将其打印出来。

var questions = [
  "text 1",
  "text 2",
  "text 3",
  "text 4"
];

var question1 = questions.splice(0, 1); // Returns the removed item.

console.log(JSON.stringify(questions, null, 2)); // Display the updated list.
.as-console-wrapper { top: 0; max-height: 100% !important; }

输出

[
  "text 2",
  "text 3",
  "text 4"
]

答案 2 :(得分:0)

如果要删除第一个元素,则有两种方法:

方法1:使用splice()
questions.splice(0, 1);

splice(position_to_start_deleting, how_many_data_to_delete)采用两个参数。 position_to_start_deleting:从零开始的索引,从此处开始删除。 how_many_data_to_delete:应从指示的索引中删除多少个连续数据

方法2:使用shift()
shift()从数组的开头删除一个元素。

答案 3 :(得分:0)

您也可以使用slice

var questions = [
  "text 1",
  "text 2",
  "text 3",
  "text 4"
];

console.log(questions.slice(1))

答案 4 :(得分:0)

直接来自W3 您确定它不起作用吗?

var fruits = ["Banana", "Orange", "Apple", "Mango", "Kiwi"];
document.getElementById("demo").innerHTML = fruits;

function myFunction() {
    fruits.splice(0,1);
    document.getElementById("demo").innerHTML = fruits;
}
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
here是更好的来源。

答案 5 :(得分:0)

此代码将找到匹配的字符串或数字类型,获取其索引,然后将其从数组中删除。

var array = ["John", "Mich", "Sam"]; // Array
var val = array.indexOf("Mich"); // Find the [#] of Mich and store to into val

if (val > -1) {
  array.splice(val, 1);
}

console.log(array)

答案 6 :(得分:0)

使用此:

var questions = [
  "text",
  "text",
  "text",
  "text"
];

questions.splice(questions.indexOf('text'), 1);

console.log(questions)